如何解决如何在 Minitest 中验证包含更改日期和数字的字符串?
假设我有一个字符串
text = "Date/Time\n19-May-21 10:43:35\nExpires\n19-Jun-2021 13:43\nPrice\n$2.00"
如何验证字符串是否存在,同时还要从字符串中省略日期和价格,因为它们不断变化?
理想情况下,我想验证是否显示了整数或日期时间,但值并不重要。
解决方法
一些策略和高级示例
您有几个基本策略可供您使用:
- 使用 TimeCop 之类的 gem 来修复测试的时间戳。
- 使用夹具数据来测试应用程序的逻辑,而不是使用真实(或至少是动态)数据。
- 使用工厂数据为每个测试生成一个已知值。
- 测试结果的格式或结构,而不是特定元素。
作为最后一个基本示例,我们假设您的数据始终具有相同数量的字段并使用 /n
而不是换行符作为分隔符。您可以构建测试以进行验证:
- 在
/n
上拆分时返回的字段数是您所期望的。 - 第四个字段是有效的 Date 或 DateTime 对象。
- 第 6 个或最后一个字段仅包含
/^\$\d+\.?\d*$/
,或对字符串结构或内容的其他验证。
通过这些类型的测试,您验证的是结构而不是特定值,这可能就足够了。如果您需要测试值,则需要使用不同的策略来提前定义期望值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。