首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试中的Mongock (Mongobee)和Spring Boot

单元测试中的Mongock (Mongobee)和Spring Boot
EN

Stack Overflow用户
提问于 2019-09-01 20:24:41
回答 3查看 2.5K关注 0票数 0

我有以下的虚拟类:

代码语言:javascript
复制
@Document("items")
static class Item {
    int i;

    public Item() {
    }

    public Item(int i) {
        this.i = i;
    }

    public int getI() {
        return i;
    }
}

这是一个简单的@Changeset

代码语言:javascript
复制
//@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)

代码语言:javascript
复制
@Test
public void test() {
    List<Item> items = mongoTemplate.findAll(Item.class);
    System.out.println(items);
}

问题:我从findAll()获取的项目为零

我发现当我将@Autowired添加到changeset1()中时,它确实起作用了(如上所述)--我得到了所有的条目。

你能解释一下为什么吗?在examples中,我不认为他们需要@Autowired

我真的应该这么做吗?我的意思是,它会破坏Mongock的锁定机制吗?

EN

回答 3

Stack Overflow用户

发布于 2019-09-01 21:04:53

没有完整的代码,很难找出哪里出了问题。很可能spring配置没有正确配置,所以如果没有自动线注释,mongoTemplate就不能在Spring容器中正确实例化。如果您更深入地跟踪MongoTemplate源代码,并比较注释更改之前和之后的执行路径,就会找到原因。

我建议按照他们的例子来找出你的项目中缺少的东西。https://github.com/cloudyrock/mongock-samples/tree/master/samples-mongock-spring/sample-mongock-spring-v2

票数 2
EN

Stack Overflow用户

发布于 2020-06-01 08:50:07

我也遇到了同样的问题,在我的例子中,bean创建者/运行者为构建器属性"changeLogScanPackage"提供了一个拼写错误的

代码语言:javascript
复制
@Bean
public SpringMongock springMongock(MongoTemplate mongoTemplate, Environment springEnvironment) {
  return new SpringMongockBuilder(mongoTemplate, "changeLogScanPackage")
        .setSpringEnvironment(springEnvironment)
      .setLockQuickConfig() OR .setLockConfig(3, 4, 3) 
       ...other setters
      .build();
}
票数 2
EN

Stack Overflow用户

发布于 2021-10-06 05:04:56

我知道这是一个老问题,但是根据Mongock documentation,你需要使用MongockTemplate,而不是MongoTemplate

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57745985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档