JavaME の単体テストに最適なフレームワークは何ですか?
-
02-07-2019 - |
質問
現在、JavaME 単体テストに最適なツールは何ですか?私はこれまで単体テストを実際に使用したことがないので (恥ずかしい!)、学習曲線は重要です。賛否両論ご回答いただければ幸いです。:)
解決
どのような検査を行う予定なのかによって変わってくると思います。継続的インテグレーションを使用しますか?携帯電話でテストを実行することは必須です。
テストがロジック/データ処理テストの場合は、JUnit を使用して問題なく実行できます。ただし、javax.microedition.* のクラスを使用する必要がある場合は、少し注意が必要になりますが、不可能ではありません。
いくつかの例:画面上のテキストの折り返しのテスト。これには javax.microedition.lcdui.Font が必要です。WTK に同梱されている jar を使用してフォント クラスを単純に作成することはできません。初期化時に、使用できないいくつかのネイティブ メソッドが呼び出されるからです。
この種のテストのために、私は J2ME のスタブ実装を作成しました。基本的に、これらは J2ME クラスの私独自の解釈です。そこでいくつかの前提条件を設定できます (たとえば、すべての文字の幅が 5 ピクセルであるなど)。そして、このテストは J2ME クラスが内部でどのように実装されるかではなく、どのように応答するかを知る必要があるだけなので、テストは非常にうまく機能しています。
私が使用したネットワークテストには マイクロエミュレータの ネットワークの実装もうまくいきました。
単体テストに関するもう 1 つの問題 - モバイル プロジェクトを Java 4、5、6 を使用した Java プロジェクトとして作成することをお勧めします。なぜなら、1.3 でテストを書くのは、少なくとも私にとっては苦痛だからです。
JUnit から始めれば問題なく起動できると私は信じています。また、他の要件が発生した場合 (ハンドセットでテストを実行する場合)、代替手段を検討できます。
他のヒント
正直に言うと、私が Java で使用した唯一の単体テスターは JUnit そしてその子プロジェクトの名前は DBユニット データベースのテスト用...J2ME では必要ないと思います。
JUnit は、IDE がサポートしている限り、単体テストに非常に簡単に使用できます (Eclipse には JUnit のサポートが組み込まれています)。テストに @Test アノテーション (org.junit.Test だと思います) を付けるだけです。実行するメソッドを指定することもできます @Before
または @After
各テストだけでなく、クラス全体の前後にも ( @BeforeClass
そして @AfterClass
).
J2ME で JUnit を使用したことはありませんが...私は職場で J2EE を使用しています。
傑出したものは見つかりませんでした。このドキュメントを読んでみてください。それの使い方そしてここにリンクがあります: ダウンロードしてください
sony ericsson によって作成されましたが、あらゆる J2ME 開発で動作します。
そして、モバイル プラットフォームでの単体テストに取り組む前に、時間をかけてプレーン Java での単体テストを学習することをお勧めします。これは一発で飲み込むには大きすぎるかもしれません。
幸運を!
J2MEUnit というフレームワークがあるので、試してみることができますが、まだ積極的に開発されているようには見えません。