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

jUnit: How to test mandatory attributes of Entity

我对 jUnit 测试还很陌生,我正在尝试为我的 Spring Boot 应用程序编写一些 integration test。我的计划是测试是否设置了对象的所有强制属性。我想到了类似的东西:

@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 实体具有更多强制属性...如何仅在一个函数中测试所有属性都已正确设置?

基本上你需要测试 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());
       // ...
   }
}

如果你想断言异常,那么我建议使用 ExpectedException。如果您想验证对象属性,那么我建议您使用自定义匹配器。