Spring mvc 如何通过JUnit&;容易吗?
我有一个Spring mvc 如何通过JUnit&;容易吗?,spring-mvc,junit4,easymock,Spring Mvc,Junit4,Easymock,我有一个 @Component public class MyBean{ @Autowired Bean1 bean1; @Autowired Bean2 bean2; public void create(Param param1, Param param2){ SomeObject object = bean2.getDesiredResult();
@Component
public class MyBean{
@Autowired
Bean1 bean1;
@Autowired
Bean2 bean2;
public void create(Param param1, Param param2){
SomeObject object = bean2.getDesiredResult();
}
}
其中Bean2.java
具有实例变量
,这些变量是自动连接的
-
class Bean2{
@Autowired
Bean3 bean3;
@Autowired
Bean4 bean4;
@Autowired
Bean5 bean5;
public Object getDesiredResult(){
// some code which calls method on some beans which have autowired
// beans, and this goes on and on further.
}
}
我必须测试这个方法
create(Param param1, Param param2)
主要的问题是,我仍然会遇到以下例外情况:
没有类型为无法自动连线字段 因为我无法手动
组件扫描
所有软件包,因为它们的数量太多了。该项目中大约有3000个java包
<context:component-scan base-package
你似乎把两件事混在一起了。您需要使用JUnit和EasyMock进行单元测试。这不需要弹簧或任何autowire。您将执行以下操作:
// Record the mock
Bean2 mock = createMock(Bean2.class);
expect(mock.getDesiredResult()).andReturn(new SomeObject());
replay(mock);
// Configure the tested class
MyBean testSubject = new MyBean();
testSubject.setBean(mock);
// Test
testSubject.create(new Param1(), new Param2());
// Check the mock was called as expected
verify(mock);
用于包裹扫描。在我看来,这与测试无关,包扫描可以是递归的