我想插入包含当前时间作为创建时间的新实体,然后使用@ShouldMatchDataset函数检查它们是否已正确创建.
我知道除创建时间以外的所有具体值,有什么方法可以使用@ShouldMatchDataSet忽略此具体字段?
解决方法:
我使用名为FlexibleComparisonStrategy的自定义比较策略为NosqlUnit做出了贡献,该策略包括以下更改.从0.8.1版本开始提供该功能,要使用它,只需将下一个注释添加到类签名中:
@CustomComparisonStrategy(comparisonStrategy = MongoFlexibleComparisonStrategy.class)
public class SomeTests {
比较策略,用于检查Mongo数据库中是否存在所有预期数据.它无法比较存储在数据库中的所有数据都包含在预期文件中,因此未在预期资源中定义的其他数据可能存在于Mongo中.它只是确保期望的数据存在.
检查以下断言:
>检查Mongo DB中是否存在所有期望的集合,但是接受数据库中存储的未在期望文件中定义的其他集合.
>检查Mongo DB中是否存在所有期望的对象,但是接受未定义为期望的相同集合中存储的其他对象.
>对于每个对象,请检查所有设置为忽略的属性,其值存在于数据库中存储的对象中,但是它接受任何保存的值.
批注@IgnorePropertyValue(properties = {String …})允许用户定义在检查预期对象时应忽略的属性.
它接受两种格式的属性定义:
> collection.property:同时定义了集合和属性名称时,排除将仅影响所指示的集合.
>例如:使用@IgnorePropertyValue(properties = {“ book.date”}),属性日期将在藏书的每个对象中被忽略.如果不同集合中的其他对象具有日期属性,则不会忽略它.
> property:仅定义属性名称时,它将从任何期望的集合中的所有对象中排除.
>例如:使用@IgnorePropertyValue(properties = {“ date”}),无论集合如何,每个对象的属性日期都将被忽略.
应遵循Mongo DB: naming restrictions文档中定义的有效集合和属性名称的规则来命名要忽略的属性的值.
当忽略属性后,数据库中存储的多个对象与预期对象匹配时,将显示一条警告,通知找到的对象数量.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。