我的单元测试有问题。以下是示例代码段。我有一个bean并注入@configuration类并使用mocked属性创建另一个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");
}
}
答案 0 :(得分:2)
这是我创建模拟的方式。有一个返回模拟的Bean,并在需要的地方自动装配。
@Autowired
MyClass myClassMock;
@Bean
public MyClass getMyClassMock(){
MyClass mock = Mockito.mock(MyClass.class);
Mockito.when(mock.getSomething()).thenReturn("ABC");
return mock;
}