2011-11-10 5 views
0

私はjUnitテストを書く上で全く戸惑いません。私はAndroidのプログラムを持っており、そのためのテストを書く必要があります。私はどのようにして、私がrobotiumでテストを書いたかを知っていますが、今は機能テストが必要です。私は自分のコードから1つの機能を持っています:android jUnitの機能テストを書く方法

private void onCoordinatesUpdate(Location loc){ 
    List<Event> list = wc.requestEvents(loc.getLatitude(), loc.getLongitude()); 
    if(list != null){ 
     adapter = new EventsArrayAdapter(this.getApplicationContext(), R.id.eventsView, (ArrayList<Event>)list); 
     ev.setAdapter(adapter); 
    } 
} 

私はそれのためにテストを書く必要があります。私にとって問題のあることは、IF文の式が例えば "list!= null"から "list == null"に変更されたかどうかを検出するtestを書く方法がわからないことです。デバイスがインターネットに接続されていると、それはそれだ場合

public void testCheckInternet(){ 
    assertTrue(mClassToTest.checkInternet()); 
} 

しかし、彼のテストのみチェック:私は考えることができるテストの唯一のアイデアは、このです。誰かが私のためにテストを書く必要はありませんが、誰かが私に方法を教えてくれないかもしれません:)どのように始めるか:)前もって感謝します。

答えて

0

プライベートを提供しています。その結果、JUnitでテストするのは難しいです。 JUnitで単体テストを行うときは、パブリックメソッドのみをテストしてください。プライベートメソッドは間接的にテストされます。 クラスに明示的にテストしたいプライベートメソッドがある場合は、クラスデザインを再考する必要があります。 1つの解決策は、このプライベートメソッドを新しいクラスに抽出し、そのメソッドを公開することです。

一般的に言えば、テスト可能なコードがあり、そうでないコードがあります。 テスト駆動型開発は、テスト可能なコードを設計するのに役立つテクニックです。良い出発点はthe JUnit documentationです。

1

「Android Developers Guide」のTestingセクションをご覧ください。

+0

実際に私はすべてを読んで、テストの仕組みを理解しています。問題は、IF条件をチェックするテストを書く方法や、たとえばFORサイクルの初期値を理解できないことです。私はインターネット上でサンプルを見つけることができません、私は例が必要です。 – JNM

+0

上記のようにお読みください。それには例があります。 –

関連する問題