1

単体テストに問題があります。以下は、サンプル コード スニペットです。Bean をモックして @configuration クラスに注入し、モックされたプロパティを使用して別の Bean を作成します。

以下では、検査すると、b.getSomething() は文字列の場合は ""、int の場合は 0 などのデフォルト値を返します。など。嘲笑された値が得られません。どうすればいいですか?

@Configuration
class A{

  @Autowired B b;

  @Bean
  public SomeClass someBean(){

   SomeClass clas = new SomeClass();
   clas.setSomething(b.getSomething());
   return clas;
   }

 }



 @ContextConfiguration(classes = { A.class}, loader = SpringockitoAnnotatedContextLoader.class)
class ATest{

@ReplaceWithMock
@Autowired
B b;

@Before
public void setup(){
Mockito.when(b.getSomething()).thenReturn("ABC");
}

}
4

1 に答える 1

2

これが私がモックを作成する方法です。モックを返す Bean を用意し、必要に応じて自動配線します。

@Autowired
MyClass myClassMock;

@Bean
public MyClass getMyClassMock(){
    MyClass mock = Mockito.mock(MyClass.class);
    Mockito.when(mock.getSomething()).thenReturn("ABC");
    return mock;
}
于 2015-11-23T03:08:31.270 に答える