1

ロボギースを使用するクラスでいくつかのテストを作成しようとしています。残念ながら、guice は何も注入していないようです。

私の設定はそうです...

  • Intellij を使用しています
  • 2 つの intellij モジュールがあります (コード用に 1 つ、テスト用に 1 つ)
  • バインディングを定義する AbstractModule(roboguice クラス) を拡張する 2 つの個別のモジュール クラスがあります。
  • このようなパッケージを指す2つのroboguice.xmlファイルがあります...
    <?xml version="1.0" encoding="utf-8"?>
         <resources>
             <string-array name="roboguice_modules">
                <item>com.evertaletest</item>
             </string-array>
         </resources>

この設定は正しいと思いますか? 注入されたクラスは、現時点では null です

4

1 に答える 1

1

I believe the <item> entry needs to give the name of your module class, not simply the package.

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string-array name="roboguice_modules">
    <item>com.evertaletest.YourModuleForCode</item>
  </string-array>
</resources>

But that will only be relevant for your production code. For tests, you will have to set your module in code instead of using XML.

In your test setup:

RoboGuice.setBaseApplicationInjector(application, 
    RoboGuice.DEFAULT_STAGE, new YourModuleForTest());
于 2012-11-15T06:37:28.090 に答える