Sta*_*123 3 java testing intellij-idea test-coverage
我有一个简单的类叫做SomeClass:
public class SomeClass {
public int value = 0;
public void inc() {
value++;
}
public void dec()
{
if (isBiggerThanFive()) value--;
value--;
}
private boolean isBiggerThanFive() {
return value > 5;
}
}
Run Code Online (Sandbox Code Playgroud)
和一个名为的测试类TheTest:
class TheTest {
SomeClass t;
@BeforeEach
void setUp() {
t = new SomeClass();
}
@Test
public void whenNewTestIsCreated_ValueIsZero()
{
assertEquals(t.value, 0);
}
@Test
public void whenIncIsCalledWithValueOfZero_ValueIsOne()
{
t.inc();
assertEquals(t.value, 1);
}
@Test
public void whenDecIsCalledWithValueOfZero_ValueIsNegativeOne()
{
t.dec();
assertEquals(t.value, -1);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意函数dec的结构以及整个 if 条件和语句如何在同一行上。测试中,当数值大于5时,这部分减2不测试。所以我假设我应该在覆盖率报告中看到这部分没有被覆盖。但这就是我得到的:
即使代码完全相同,我也会根据代码的结构得到不同的结果。当一条线没有被实际覆盖时,我怎么能知道它的一部分没有被覆盖?
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |