14

最初はjunitsでMockitoのみを使用していたので、@ RunWithアノテーションでSpringJUnit4ClassRunner.classを使用していました。

@RunWith(SpringJUnit4ClassRunner.class) 

そのため、春の依存性注入は正常に機能し、Bean を通過していました

@Autowired

Someservice someservice ;

しかし今、私はそれに PowerMock も統合しました。

docに従って、 @RunWith アノテーションに記載されているクラスを次のように置き換えました

@RunWith(PowerMockRunner.class)

しかし今、いくつかのサービスがnullになっています。@RunWith アノテーションでSpringJUnit4ClassRunner.classPowerMockRunner.classの両方を使用する方法はありますか

4

2 に答える 2

15

PowerMockRuleを使用する必要があります。

@RunWith(SpringJUnit4ClassRunner.class) 
@PrepareForTest(X.class)
public class MyTest {
    @Rule
    public PowerMockRule rule = new PowerMockRule();

    // Tests goes here
    ...
}

PowerMock と Mockito を使用した Spring Integration Test の完全な例については、このmaven プロジェクトをチェックアウトできます。

svn co http://powermock.googlecode.com/svn/tags/powermock-1.4.12/examples/spring-mockito/
cd spring-mockito/

powermock への依存関係を見てください。

less pom.xml

そして、テストを実行します

mvn test

次のテスト結果が得られるはずです。

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
于 2012-08-28T12:00:57.883 に答える