10

RunWithアノテーションを追加すると@RunWith(PowerMockRunner.class)、Spring Autowire が機能しなくなります。

class B {  
  @Autowire  
  SessionFactory session;
}

@RunWith(PowerMockRunner.class)  
@PrepareForTest{SomeClass.class}

class Testing {  

  @Test
  methodA(){  
    //mehod 
  }

  @Test
  methodD(){  
  }    
}  

ここで、メソッド A がクラス B を呼び出しますが、RunWith(PowerMockRunner)アノテーションが原因でオートワイヤリングが機能しません。どんな助けでも大歓迎です!

4

2 に答える 2

11

2016 年には、2 つのランナーを効果的に使用して、PowerMockito でランナー デリゲートを使用できます。

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)

詳細はこちら: https://github.com/jayway/powermock/wiki/JUnit_Delegating_Runner

于 2016-02-03T09:52:53.257 に答える
2

春は魔法ではありません (たとえそのように思えても)。コードのどこにも、Spring にアプリケーション コンテキストを起動し、Bean の自動配線の作業を行う機会を与えていません。自分でコンテキストを開始するか、テストを使用するように切り替える必要があります@RunWith(SpringJUnit4ClassRunner.class)。残念ながら、JUnit は一度に 1 つのランナーしかサポートしないため、PowerMockRunner の使用を停止する必要があります。

于 2012-07-14T13:20:27.387 に答える