【发布时间】:2016-04-20 20:00:06
【问题描述】:
我有一个类控制器: 问题在 Test 类的 cmets 中——我应该如何模拟 myFactory 对象并将该对象设置为控制器的属性?即使我使用@Mock/EasyMock 模拟工厂对象,我应该如何在控制器中设置它,就像使用自动装配一样,它没有工厂的设置器 所以,我不能使用 controller.setFactory() 另外,我如何模拟工厂对象中的方法,就像我对带有 @Mock 的对象所做的那样:Mockito.when(factory.someFactoryMethod).andReturn("abc")
public class Controller{
@Autowired
MyFactory factory;
someMethod(){
String abh = factory.someFactoryMethod("defaultObject");
}
}
public class MyFactory{
public String someFactoryMethod(String argument){
//some code
}
}
public class ControllerTest{
@Before
public void initialize() {
Controller testController = spy(new Controller());
/*
how should I mock myFactory object and set this object as a property of controller? Even if I mock the factory object using @Mock/ EasyMock, how should I set this in controller as with Autowiring, it does not have the setter for factory
So, I cant use controller.setFactory(<mocked object>)
Also, How do I mock the methods in factory object , the way I do it for objects with @Mock : Mockito.when(factory.someFactoryMethod).andReturn("abc")
*/
}
}
【问题讨论】:
标签: spring spring-mvc junit factory