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