java-将NoSQLUnit与@ShouldMatchDataSet一起使用时,是否可以忽略某些字段?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-将NoSQLUnit与@ShouldMatchDataSet一起使用时,是否可以忽略某些字段?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1662字,纯文字阅读大概需要3分钟。
内容图文
![java-将NoSQLUnit与@ShouldMatchDataSet一起使用时,是否可以忽略某些字段?](/upload/InfoBanner/zyjiaocheng/885/811126b6013545a5970819df017dd32b.jpg)
我正在使用NoSQLUnit对Mongo数据库进行测试.
我想插入包含当前时间作为创建时间的新实体,然后使用@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文档中定义的有效集合和属性名称的规则来命名要忽略的属性的值.
当忽略属性后,数据库中存储的多个对象与预期对象匹配时,将显示一条警告,通知找到的对象数量.
内容总结
以上是互联网集市为您收集整理的java-将NoSQLUnit与@ShouldMatchDataSet一起使用时,是否可以忽略某些字段?全部内容,希望文章能够帮你解决java-将NoSQLUnit与@ShouldMatchDataSet一起使用时,是否可以忽略某些字段?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。