gpt4 book ai didi

java - 方法前提条件是否应该进行单元测试?

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:12 25 4
gpt4 key购买 nike

我使用 Guava 的 Preconditions验证我的方法的输入,例如:

class TestedClass {
public double sqrt(double value) {
Preconditions.checkArgument(value >= 0.0, "negative value: %s", value);
}
}

我想知道是否应该对先决条件进行单元测试?我是否应该进行测试:

@Rule
public ExpectedException exception = ExpectedException.none();

@Test
public void shouldFailWhenValueIsNegative() {
exception.thown(IllegalArgumentException.class);
exception.expectMessage("negative value: -1");

new TestedClass().sqrt(-1);
}

最佳答案

我的意见是,是的,您通常应该进行测试,以验证您的方法的行为是否符合其契约(Contract)规定的行为(包括先决条件)。如果您说您的方法在给定参数负值时抛出特定异常,请进行测试以确保这是真的。

对于像 NullPointerException 这样非常常见的事情,guava-teSTLibNullPointerTester,我们用它来测试 NPE 为未使用 @Nullable 注释的参数抛出。

关于java - 方法前提条件是否应该进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27857794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com