假设我有以下简单代码:
public class SimpleOperations {
public int square(int x){
return x*x;
}
}
现在,为了测试上一个方法,以下方法非常有效:
public class Jtest {
@Test
public void test() {
SimpleOperations test = new SimpleOperations();
int output = test.square(5);
assertEquals(25, output);
}
}
为什么我们需要添加setUp和tearDown方法?像这样运行代码显示方法是否正确。 setUp / tearDown方法有什么优势可以增加测试?他们应该如何在这里?
答案 0 :(得分:0)
您并不需要添加setUp和tearDown方法,但通常这样做是为了遵循“不要自己重复”(DRY)"软件开发原理。
有些人喜欢避免使用setUp和tearDown方法来保持测试被隔离,因此设置初始化的额外变量或对象不会干扰当前测试。
至于你的基本示例,我没有看到添加setUp和tearDown方法的任何优势。
答案 1 :(得分:0)
注意:这是一个稍长的答案。我会尽量保持简洁。
对于一个简单的示例,例如您所显示的示例,您无需进行任何设置或拆除测试。
但是,考虑一下您使用一堆依赖项测试复杂服务的情况,您将需要使用setup方法......以及...设置测试所需的对象。这将包括模拟您的依赖项,以便调用您的服务方法不会失败。然后,失败测试案例只会改变模拟以测试失败案例。
拆除将有助于清除测试创建的工件,以便下一个测试可以工作,而不必受到先前测试遗留的干扰。考虑清除作为运行测试的一部分添加的测试(内存中)数据库中的记录或测试用例本身。