嘿所有我试图让这些单元测试失败但不能使用注释,这对我来说是新的。任何想法都会很棒!
我一直在尝试各种方法来通过将测试类变量设置为null或尝试在最小测试中使用if / else语句来使它们失败,但它们总是通过传递。这是对的吗?
public class ValidationServiceTest extends BaseServiceTest {
ValidationService validationService;
ValidationException ve;
TestDto test;
Field f;
@Before
public void setup() {
validationService = new ValidationService();
ve = null;
}
@Test
public void validateNotNull(){
try {
validationService.validate(ve, test.xx);
assertNotNull("testing notNull()", ve);
} catch (Exception e) {
}
}
@Test
public void validateMin(){
try {
validationService.validate(ve, test.xy);
if(test.xy > f.min()){
assertTrue("testing min()" , test.xy > -1);
}
} catch (Exception e) {
}
}
public class TestDto{
@Field(notNull=true)
public Integer xx = null;
@Field(min=2)
public Integer xy = -5;
}
}
答案 0 :(得分:0)
不要捕获异常,而是使用throws Exception
标记测试方法。
test
字段永远不会在您的测试中初始化,这意味着它是 null 。每当您尝试访问test
的字段时,这会导致NullPointerException。跳过断言行,并在catch子句中抑制异常。删除try / catch块并使用throws Exception
标记测试方法将导致测试报告错误,您将立即看到错误。