jUnit:如何测试实体的强制属性

时间:2016-04-15 09:56:59

标签: java unit-testing junit

我对jUnit测试很陌生,我试图为integration test应用程序编写一些Spring Boot。我的计划是测试是否设置了对象的所有必需属性。我想出了类似的东西:

@Test(expected = org.springframework.orm.jpa.JpaSystemException.class)
public void testMessageMandatoryAttributes() {
    Message corruptedMessage = new Message();
    // set id
    // corruptedMessage.setId(id);
    // set conversation thread
    // corruptedMessage.setConversationThread(conversationThread);
    messageRepository.save(corruptedMessage);
}

尽管如此,我的Message实体有更多强制属性......如何在一个函数中测试所有这些属性都已正确设置?

2 个答案:

答案 0 :(得分:1)

基本上,您需要测试messageRepository.save(Message)方法是否会引发包含缺少字段的一些信息的异常。

在下方找到可帮助您实现目标的代码段。用你需要验证的内容替换catch块中的断言。

@Test
public void testMessageMandatoryAttributes() {
    Message corruptedMessage = new Message();
    // set id
    // corruptedMessage.setId(id);
    // set conversation thread
    // corruptedMessage.setConversationThread(conversationThread);

   try {
       messageRepository.save(corruptedMessage);
       fail();
   catch (YourException e) {
       assertEquals("Expected value", e.getXxx());
       // ...
   }
}

答案 1 :(得分:0)

如果你想断言异常,我建议使用ExpectedException。如果你想验证对象属性,那么我建议使用write your custom matcher。