現在、JavaME 単体テストに最適なツールは何ですか? 私はこれまで単体テストを実際に使用したことがなかったので (残念です!)、学習曲線は重要です。あなたの答えでいくつかの長所と短所をいただければ幸いです。:)
4 に答える
どのような検査を行うかによって変わると思います。継続的インテグレーションを使用しますか。携帯電話でテストを実行する必要があります。
テストがより多くのロジック/データ処理テストである場合、JUnit で問題なく実行できます。しかし、javax.microedition.* のいくつかのクラスを使用する必要がある場合は、少し難しくなりますが、不可能ではありません。
いくつかの例: javax.microedition.lcdui.Font を必要とする画面上のテキスト折り返しのテスト。WTK に同梱されている jar を使用してフォント クラスを作成することはできません。これは、初期化時に使用できないネイティブ メソッドを呼び出すためです。
この種のテストのために、J2ME のスタブ実装を作成しました。基本的に、これらは J2ME クラスの私独自の解釈です。そこにいくつかの前提条件を設定できます (たとえば、すべての文字が 5 ピクセル幅であるなど)。私のテストは、J2ME クラスが内部でどのように実装されているかではなく、どのように応答するかを知るだけでよいため、非常にうまく機能しています。
ネットワーク テストでは、 MicroEmulator のネットワーク実装を使用しましたが、これもうまくいきました。
単体テストに関するもう 1 つの問題 - Java 4、5、6 を使用した Java プロジェクトとしてモバイル プロジェクトを作成することをお勧めします。
私は、JUnit から始めることは問題なく、起動して実行できると信じています。また、他の要件が発生した場合 (ハンドセットでテストを実行する場合) は、代替案を検討できます。
正直なところ、私が Java で使用した唯一のユニット テスターは、JUnitと、データベース テスト用のDBUnitという名前の子プロジェクトです... J2ME では必要ないと思います。
JUnit は、IDE がサポートしている限り、ユニット テストに非常に簡単に使用できます (Eclipse は組み込みの JUnit をサポートしています)。@Test アノテーション (org.junit.Test だと思います) でテストをマークするだけです。クラス全体の前後だけでなく、実行する必要があるメソッド@Before
または各テストを指定することもできます ( とを使用)。@After
@BeforeClass
@AfterClass
J2ME で JUnit を使用したことはありませんが、仕事で J2EE を使用しています。
試してみることができる J2MEUnit というフレームワークがありますが、まだ積極的に開発されているようには見えません。