我的方法有时会返回null而不是null值,所以如何为这些场景编写断言
例如:assertNotNull(some statement)
答案 0 :(得分:8)
简单:
@Test
public void testFooGivesNotNull() {
assertNotNull(foo.bar(somethingLeadingToNotNull));
}
@Test
public void testFooGivesNull() {
assertNull(foo.bar(somethingElseLeadingToNull));
}
换句话说:您通过识别可能的测试用例来做到这一点,然后为每个可能的路径编写至少一个测试。
对于记录:返回 null 很少是个好主意。 null 是进入NullPointerException的第一步。考虑替代方案,例如
Optional
答案 1 :(得分:1)
只需调用您的函数并添加错误消息:
Assert.assertNotNull(someFunction(), "This should not be null");
答案 2 :(得分:1)
使用Assert.assertNotNull的好方法是通过静态导入。
import static org.junit.Assert.assertNotNull;
assertNotNull(yourValueTobeCheckAsNull, "This should not be null");