問題タブ [atunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - Guice と TestNg を一緒にプレイさせる方法、a-la-AtUnit スタイル
単体テストと統合テストには TestNG を使用し、DI には Guice を使用しています。テスト クラスを他のクラスのように扱いたいと思います。インジェクターを直接操作するのではなく、@Inject でマークされたフィールドを定義し、各テストの前にこれらを注入します。
これを行うフレームワークはありますか?AtUnitも同様のことを行っていると思いますが、TestNG とどのように統合されているか、どの程度成熟しているかはわかりません。
guice - AtUnitとguiceモジュールのオーバーライド
使いたい
テストケースの場合は、すべての本番バインディングを継承し、テスト用にオーバーライドするだけです(インスタンスをモックに置き換えます)。AtUnitでこれを行う方法はありますか?モジュールの実装は、すべての本番バインディングを継承して必要なものをモックしたいと思うので、設計では奇妙に見えますが、モジュールを実装するテスト以外の方法があるかもしれません。
たぶん、AtUnitに注釈を付けてAtUnitにテストケースの本番モジュールを通知し、テストケースでTestModuleオーバーライドを取得するように構成する方法はありますか?そのような方法はありますか?
ありがとう、ディーン
testing - ウィケットとアットユニット
私は Wicket を使い始め、依存性注入フレームワークとしてGuiceを選択しました。今、WebPage オブジェクトの単体テストを作成する方法を学ぼうとしています。
少しグーグルで検索したところ、この投稿を見つけましたが、AtUnit について言及していたので、試してみることにしました。
私の WebPage クラスは次のようになります
プロダクションの MyServiceImpl をそれに置き換えるモックを作成しましたが、Guice と AtUnit がそれを注入する必要があると思います。
問題は次のとおりです。
AtUnit は、ターゲット オブジェクトを @Unit でマークすることを期待しています。これは、作成済みのオブジェクトを WicketTester に渡すことができるため、問題ありません。
しかし、通常はクラス名で startPage を呼び出します。
AtUnit は、ターゲット オブジェクトが @Inject を使用して市場に出されていることも期待しているため、AtUnit はそれを作成および管理できますが、org.apache.wicket.WicketRuntimeException: There is no application attached to current thread main が発生します。AtUnit に wicketTester からのアプリケーションを使用するように指示できますか?
- 私は MyWebPage で @Inject を使用していないため (私が思うに)、Guice によって注入されるべきすべてのオブジェクトは null です (私の例では、サービス参照は null です)。
Wicket 環境内の AtUnit については本当に何も見つかりません。私は何か間違ったことをしていますか、何かが欠けていますか?