RSM*_*RSM 1 groovy junit unit-testing
这就是我在groovy中进行单元测试的方式.
public void testSomeMethod() {
doSomething(1,2,3,4); //this is first test
doSomething(11,22,33,44); //this is second test
}
private void doSomething(a, b, c, d) {
assertEquals(a, actual)
}
Run Code Online (Sandbox Code Playgroud)
基本上我在同一测试下用不同的值调用doSomething 2次.它可能不是一个好的测试方法,但我只想尝试一下.
所以,问题是,如果第一次测试失败,第二次测试就不会被执行.
有没有办法可以强制它打印失败信息并转到下一个?
现在是你使用spock的好时机,你可以在那里进行数据驱动的测试,第二次测试不会被第一次测试.您可以获得更多灵活性,例如您要求的更多灵活性.
最终,测试看起来像:
void "test something"(){
when:
def result = doSomething(a, b, c, d)
then:
result == expectedResult
where:
a | b | c | d || expectedResult
1 | 2 | 3 | 4 || 100
11 | 22 | 33 | 44 || 1000
}
private doSomething(a, b, c, d){...}
Run Code Online (Sandbox Code Playgroud)
您可以在spock框架文档中找到更多详细信息和/或查看这些问题.
顺便说一句,上面的测试示例可以过度简化,以使其更加流畅.;)
void "test something"(){
expect:
result == doSomething(a, b, c, d)
where:
a | b | c | d || result
1 | 2 | 3 | 4 || 100
11 | 22 | 33 | 44 || 1000
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
656 次 |
| 最近记录: |