2016-08-03 2 views
-1

を得るには、私のユニットテストのコーディングです。ユニットテストクラスのインスタンスがnull

上記単位テストにおけるよう
public class cardTest extends AndroidTestCase{ 
    Card card; 

     @Override 
     protected void setUp() throws Exception { 
      super.setUp(); 
      card = new Card(); 
     } 

     @Override 
     protected void tearDown() throws Exception { 
      super.tearDown(); 
     } 

     public class testgenerateRandom(){ 
      card.generateRandom(); 
     } 

     public class testinit(){ 
      card.init(); 
     } 
    } 

testinitは()カードクラスのINITを呼び出します。キーストアがnullになります。私はすでに、最初のテストケースであるgenerateRandom()のキーストアを初期化しました。

最初のテストケース(testgenerateRandom())が完了するたびに、カードインスタンスはnullになります。キーストアもnullになるようにします。

カードインスタンスがnullになるのはなぜですか?それを助けてくれるの?

+0

実際のコードまたは実際にコンパイルするものを投稿してください。 – m0skit0

+0

更新されましたあなたはそれを見ることができます... @ m0skit0 – Vji

+0

@downvoterダウン投票の理由はありますか? – Vji

答えて

3

あなたはおそらく期待どおりtestgenerateRandom()testinit()前に呼び出されることはありませんつまり、JUnitのは、それが実行する各テストメソッドのためにあなたのcardTestクラスの新しいインスタンスを作成することに注意してください、との両方の方法はCardの異なるインスタンスを使用します。テスト方法ごとに、正しくテストするインスタンスをsetUp()に正しく設定してください。

+0

setup()メソッドの2番目の呼び出しを制限できますか? – Vji

+2

@VjiこれはJUnitの仕組みではありません。いくつかのテストで呼び出さないようにするには、呼び出したいテストにのみ呼び出す必要があります。 JUnitテストは、互いに完全に独立していることに注意してください。 – m0skit0

+0

@Vji、よろしくお願いします! – Egor

関連する問題