2016-09-21 7 views
0

Iamはmockitoを使用してテストを実行し、iamは非常に新しいです。 Iamが、Mockitoメソッドと、宣言されたオブジェクト/変数の使用のためのOnmessageメソッドで、NULLポインタ例外を取得しています。 コードスニペットは次のとおりです。使用する変数のnullポインタ例外を投げるMockitoメソッド

クラスA.java

 Class A{ 

     @Inject 
     CheckConnection connection; 

     public void onMessage(Message m) 
     { 
      if(connection.IsInternetavailable==true) //Null pointer is occuring here 
      { 
       //Do something with Message 
      } 
      else 
      { 
       //Do something with Message 
      } 
     } 
     } 

クラスAtest.java-Mockitoクラス

 Class ATest 
     { 

     @InjectMocks 
     A resource; 

     @Mock 
      CheckConnection connection; 

     @Test 
      public void shouldProcessMessage() throws JMSException { 
       // Arrange 
       final String Type = "MessageType"; 
       final String Body = "MessageBody" 

       final ActiveMQTextMessage message = new ActiveMQTextMessage(); 
       message.setStringProperty("messageType", Type); 
       message.setText(Body); 

       // Act 
       this.resource.onMessage(message); //This method fails i.e. it gives null pointer exception 
      } 
     } 
+2

まあ...あなたは、あなたが使用している正確なコードから始めることができます。あなたのコードスニペットは、 'CheckConnection!= CheckInternetConnection'と' onMessage!= OnMessage'と一緒には適合しません。さらに、モックを持っている場合は、自動的にテスト中のオブジェクトに自身を挿入しません。 – Seelenvirtuose

+0

私はこれを修正しました。これはこれが合計すると思います –

+0

そして 'this.resource'とは何ですか?あなたがプログラムの重要な部分を単に取り戻せば、どうすればあなたを助けることができますか? – Seelenvirtuose

答えて

1

まず:注釈はInjectMocksが欠落しているInjectMockない

第二:あなたはinitする必要がありますあなたのセットアップメソッドまたは最初にあなたのテストメソッドで呼び出すべきであるこのコールMockitoAnnotations.initMocks(this);でモックを初期化してください。

関連する問題