我在代码中添加了一个条件运算符,如:
String test;//assigned with some value
result = test != null ? test : "";
在突变检测中失败,原因是negative conditional→survive
我添加了几个单元测试用例来分配""
,null
,"value"
的值,如
asserThat(testValue.equals(""));
但是没有办法解决这个问题。
我能从任何人那里得到关于这个特定流的突变覆盖率的帮助吗?
assertThat(testValue.equals(""));
不是一个有效的断言。假设您正在使用AssertJ,这应该是。
assertThat(testValue).isEqualTo("");
从你发布的小片段来看,你的代码和测试是什么样子的并不完全清楚。但是,在下面的代码中,通过提供的测试终止了被否定的条件。
public class Foo {
public static String foo(String test) {
String result = test != null ? test : "";
return result;
}
}
class FooTest {
@Test
void convertsNullToEmptyString() {
assertEquals("", Foo.foo(null));
}
@Test
void returnsNonNullValues() {
assertEquals("hello", Foo.foo("hello"));
}
}