嵌套的autowire无法在Spring JUnit测试

时间:2016-07-15 06:29:53

标签: java spring unit-testing spring-mvc junit

我正在为我的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对象。这样就行了。

0 个答案:

没有答案