1

我有一个类,其中一些字段是@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 字段中添加一些其他注释,但如果可能的话,我希望在不更改原始源代码的情况下解决它。

4

1 回答 1

1

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

于 2015-02-09T13:48:44.680 回答