- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下虚拟类:
@Document("items")
static class Item {
int i;
public Item() {
}
public Item(int i) {
this.i = i;
}
public int getI() {
return i;
}
}
这是一个简单的@Changeset
:
//@Autowired
@ChangeSet(order = "001", id = "add_items", author = "tester")
public void changeset1(MongoTemplate mongoTemplate) {
for (int i = 0; i < NUM_OF_DB_ITEMS; i++) {
mongoTemplate.insert(new Item(i));
}
}
调用@Changeset
后,单元测试正在运行(注意mongoTemplate是@Autowired
)
@Test
public void test() {
List<Item> items = mongoTemplate.findAll(Item.class);
System.out.println(items);
}
问题:我从 findAll()
获取零项
我发现,当我将 @Autowired
添加到 changeset1()
时,它确实有效(如上所述) - 我得到了所有项目。
你能解释一下为什么吗?在 examples ,我认为他们不需要 @Autowired
我应该这样做吗?我的意思是,它会损坏 Mongock 的锁定机制吗?
最佳答案
如果没有完整的代码,很难找出哪里出了问题。最有可能的是 spring 配置没有正确配置,因此如果没有 Autowiring 注释,mongoTemplate 就无法在 Spring 容器中正确实例化。如果您愿意更深入地跟踪 MongoTemplate 源代码并比较注释更改之前和之后的执行路径,您会找到原因。
我建议按照他们的示例来找出您的项目中缺少的任何内容。 https://github.com/cloudyrock/mongock-samples/tree/master/samples-mongock-spring/sample-mongock-spring-v2
关于java - 单元测试中的 Mongock (Mongobee) 和 Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57745985/
我有以下虚拟类: @Document("items") static class Item { int i; public Item() { } public Item
我是一名优秀的程序员,十分优秀!