我有一个旧版本的API: Foo()。现在我将API扩展到Foo(false),Foo(true)和Foo()应该仍然可以像以前一样工作。
现在我使用Parameterized.class来做Junit,参数列表是{null,false,true}。我想把测试用例写成:
@Test
public void fooTest() {
Foo(parameter);
}
但是Foo(参数)不能测试Foo(),所以我不得不把测试代码写成:
@Test
public void fooTest() {
if (parameter == null)
Foo();
else
Foo(parameter);
}
有没有什么简单的方法来编写测试用例,这样我就不需要检查参数是否为空了?我之所以这样问,是因为在我扩展API之前,很多地方已经有了原始的测试用例(见下文),我不想对测试代码做太多的修改。:
@Test
public void fooTest() {
Foo();
}
发布于 2015-03-10 05:06:05
一种方法是将Foo-Object (而不是构造器参数)放入参数中,即用{Foo(false), Foo(true),Foo()}
代替{null, false, true}
然而,回顾一下你的例子。它可能是一个真实问题的抽象。如果不是:
缺少单元断言,这些断言应该包含在参数中(否则您会在断言phase).
更容易完成3个参数值的断言测试
当然,您也可以将默认构造函数放入单独的(非参数化的)测试类中。
哪种选择是最好的,这在很大程度上取决于抽象背后的真正问题。
https://stackoverflow.com/questions/28620512
复制