- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Spring Boot 和 Mongo Embedded(JHipster、Flapdoodle)设置测试。一般来说它有效。我可以在 Robomongo 中看到带有创建的测试集合和对象的数据库(使用 Mongobee 进行迁移)。
但是当我想访问 Clients 集合时:
List clients = clientRepository.findAll();
它抛出:
java.lang.IllegalArgumentException: Given DBObject must be a BasicDBObject! Object of class [org.jongo.bson.RelaxedLazyDBObject] must be an instance of class com.mongodb.BasicDBObject
当我使用真正的 Mongo 实例运行应用程序时:./mvnw -Pdev即使测试和开发配置使用相同的 Mongobee 振动,也没有错误。
Spring 文档非常简洁: http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-mongo-embedded
我的测试配置文件application.yml是:
spring:
mongodb:
embedded:
version: 3.2.1
data:
mongodb:
host: localhost
port: 27117
database: mydb-test
我使用 Mongo(真实实例)版本 v3.2.7,在配置中我设置的 Embedded Mongo 的最高可能版本是 3.2.1,这可能是个问题?也许有人可以与示例工作测试分享他的配置?
最佳答案
我找到了解决方案。
问题是我在@ChangeSet 中使用了 org.jongo.Jongo 而不是 JHipster 默认的 com.mongodb.Db。
由于某些原因,Jongo 不能很好地与嵌入式 Mongo 配合使用。当我切换到 Db 时,所有问题都消失了。
不工作:
@ChangeSet(...)
public void someChange(Jongo jongo) throws IOException {
org.jongo.MongoCollection collection = jongo.getCollection("collection");
DBObject basicDBObject = new BasicDBObject();
collection.insert(basicDBObject);
...
}
工作:
@ChangeSet(...)
public void someChange(Db db) throws IOException {
com.mongodb.MongoCollection collection = db.getCollection("collection");
DBObject basicDBObject = new BasicDBObject();
collection.insert(basicDBObject);
...
}
关于spring - 类 [org.jongo.bson.RelaxedLazyDBObject] 的对象必须是类 com.mongodb.BasicDBObject 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38368872/
我正在尝试使用 Spring Boot 和 Mongo Embedded(JHipster、Flapdoodle)设置测试。一般来说它有效。我可以在 Robomongo 中看到带有创建的测试集合和对象
我是一名优秀的程序员,十分优秀!