2016-04-15 3 views
1

私はjUnitのテストに新しくなりました。私はをSpring Bootアプリケーションに書き込もうとしています。私の計画は、オブジェクトのすべての必須属性が設定されているかどうかをテストすることです。私のような何かを思い付いた:jUnit:エンティティの必須属性をテストする方法

@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); 
} 

にもかかわらず、私のメッセージエンティティは、それらのすべてが適切に設定されているただ一つの機能をでテストするための方法をより多くの必須属性を持っていますか...?

+0

私はそれを取得しません。あなたはテストのセッターを介してあなた自身のすべての属性を設定しているようですので、何をテストしたいですか? – pgiecek

+0

テストを書くためのJavaコードを投稿してもよろしいですか? – deeveeABC

+0

@pgiecek私の目標は、「オブジェクトを作成してデータベースに保存しようとしましたが、すべての必須属性を割り当てなかったので、あなたはテストを作成することです。これとこのフィールドとこのフィールドの例外があります。それはどのようにすべきか.... " – Dworza

答えて

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()); 
     // ... 
    } 
} 
+0

ありがとう!私はそれを解決することができますこのアプローチで:) – Dworza

0

例外をアサートする場合は、ExpectedExceptionを使用することをお勧めします。オブジェクトのプロパティを検証する場合は、カスタムカスタムマッチを使用することをお勧めします。

関連する問題