我正在使用 NoSQLUnit 对 Mongo 数据库进行测试。
我想插入包含当前时间作为创建时间的新实体,然后使用 @ShouldMatchDataSet 函数检查它们是否已正确创建。
我知道除了创建时间之外的所有具体值,有没有办法使用 @ShouldMatchDataSet 忽略这个具体字段?
最佳答案
我使用名为 FlexibleComparisonStrategy 的自定义比较策略为 NoSQLUnit 做出了贡献,其中包括以下更改。它从 0.8.1 版开始可用,要使用它,只需将下一个注释添加到类签名:
@CustomComparisonStrategy(comparisonStrategy = MongoFlexibleComparisonStrategy.class)
public class SomeTests {
检查 Mongo 数据库中是否存在所有预期数据的比较策略。它没有比较数据库中存储的所有数据都包含在预期文件中,因此其他未在预期资源中定义的数据可能存在于 Mongo 中。它只是确保预期数据存在。
检查以下断言:
注释 @IgnorePropertyValue(properties = {String...}) 允许用户定义在检查预期对象时应忽略的属性。
它接受两种格式的属性定义:
要忽略的属性值应按照 Mongo DB: naming restrictions 文档中定义的有效集合和属性名称的规则命名。
当数据库中存储的多个对象在忽略属性后与预期对象匹配时,会显示警告,通知找到的对象数量。
关于java - 将 @ShouldMatchDataSet 与 NoSQLUnit 一起使用时,有什么方法可以忽略某些字段吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28149948/