2016-05-16 15 views
0

私は、特定のメソッドをテストするためにJunitテストクラスを作成しました。このメソッドで処理される変数の1つは、プロパティファイルから値を取得することによってスプリング注入されます。以下Junitメソッド呼び出しがスプリングインジェクションのために失敗する

私の試験方法

@Test 
public void myTestMethod() { 
    //invoking the method to be tested 
    Assert.assertTrue(updateGroceries()); 
} 

これは、上記のクラスにおいて

public class ToBeTested { 

    //Spring injected value 
    String categories; 

    public boolean updateGroceries() { 
    List<String> categoryList = StringUtils.convertStringToList(categories); 
    } 

試験されるクラスである、カテゴリ変数は、ばね注入されます。 は、このプロパティは、コンテンツをファイルです:

categories = Dals,Pulses,Dry Fruits,Edible Oil 

今私のJUnitのメソッドを実行している間の依存性の注入は、私はTomcatでの実行をテストしたいfailing.Sinceコードであるため、実行が失敗しています。私はtomcatを実行せずにコードをテストしたい。解決策を提案してください。

答えて

0

あなたはMockitoを見てください。 mockitoフレームワークを使用する場合は、スプリング注入値用のモックを作成できます。あなたはmockito websiteでもっと読むべきです。

1

最初にmockitoを実行するには、テストで有効にする必要があります。 注釈@RunWith(MockitoJunitRunner.class)を使用するか、テストの最初に実行してくださいMockito.initMocks()。残念ながらmockitoが@Value注釈付きフィールドを注入サポートしていません

@RunWith(MockitoJunitRunner.class) 
private YourTest{ 

    @InjectMocks 
    ToBeTested toBeTested; 

    @Mock 
    ToBeTestedDependency dependency; 

    @Before 
    public void setUp(){ 
     ReflectionTestUtils.setField(toBeTested, "categories", 
      "someCategory"); 
    } 

    @Test 
    public void shouldDoThisOrThat(){ 
     toBeTested.updateCategories(); 
    } 
} 

: 次に、あなたのテストは次のようになります。 ReflectionTestUtilsを使用するか、Valueキーのプロパティを解決するためにPropertyPlaceholder設定でスプリングコンテキストを定義する必要があるSpringJUnit4ClassRunnerでテストを実行する必要があります。ここでは、ばね試験法のdocumentation and exampleへの参照を見つけることができます。

これが役に立った。

関連する問題