我正在为我的Spring MVC创建一个单元测试controllerA.
这个控制器有一个服务成员自动装配。
@Controller
public class ControllerA {
@Autowired
public Service1 service1;
...
}
当我在单元测试中自动装配此控制器时。其成员服务为空。但控制器本身已接通。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyConfig.class)
@WebAppConfiguration
public class ControllerATest{
@Autowired
public ControllerA controllerA;
@Test
public testControllerA {
//controllerA.service1 is null here
}
}
控制器A.service1未接线的原因是什么?由于我将@Autowired
放在controllerA上,它应该将其成员service1与Service1
bean连接起来(它的类上有一个@service
注释),对吗?
配置类与我的生产环境相同,并且工作正常。
我目前的解决方法是在单元测试类中单独自动装配service1
。然后将其分配给新构造的ControllerA对象。这样就行了。