1

我有单元测试的问题。下面是示例代码片段。我模拟了一个bean并注入@configuration类并使用模拟属性创建另一个bean。

在下面,如果我检查,b.getSomething() 会返回默认值,例如“”表示字符串,0 表示 int。等等。我没有得到嘲笑的价值。知道该怎么做吗?

@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

这就是我创建模拟的方式。有一个返回 Mock 的 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 回答