JMockit的@Injectable用于非自动连接字段

时间:2015-02-08 12:23:47

标签: java jmockit injectable

我有一个类,其中某些字段是@Autowired而有些字段不是,在测试类中我想自动为@Autowired字段自动注入值。但是自动注入只发生在@Autowired个字段中。

以下是一个例子:

public class SimpleObject {
    Long id;
    @Autowired UsersDAO usersDAO;
}


public class SimpleTest {

    @Tested SimpleObject testedSimpleObject;
    @Injectable @Mocked UsersDAO usersDAO;
    @Injectable Long id = new Long(200);

  @Test
  public void testId() {
      assertNotNull(testedSimpleObject);
      assertNotNull(testedSimpleObject.id);
  }
}

测试将在第二行失败。 id字段不是自动注入的。 但是,如果我从@Autowired中移除UsersDAO注释,则测试通过。

为什么会这样? 我怎样才能克服这个问题? 我知道我可以在id字段中添加一些其他注释,但是如果可能的话,我想在不改变原始源代码的情况下解决它。

1 个答案:

答案 0 :(得分:1)

这是由于JMockit 1.14中的一个错误,但它已经针对下一个版本1.15修复(将于2015年2月晚些时候发布)。