Ruby 如何在Minitest中验证包含更改日期和数字的字符串?

Ruby 如何在Minitest中验证包含更改日期和数字的字符串?,ruby,wildcard,string-matching,minitest,Ruby,Wildcard,String Matching,Minitest,假设我有一根绳子 text = "Date/Time\n19-May-21 10:43:35\nExpires\n19-Jun-2021 13:43\nPrice\n$2.00" 我如何验证字符串是否存在,同时又从字符串中忽略日期和价格,因为它们不断变化 理想情况下,我希望验证是否显示整数或日期时间,但值并不重要。一些策略和高级示例 您可以使用以下几种基本策略: 使用类似gem的TimeCop来修复测试的时间戳 使用fixture数据测试应用程序的逻辑,而不是使用真实(或至

假设我有一根绳子

text = "Date/Time\n19-May-21 10:43:35\nExpires\n19-Jun-2021 13:43\nPrice\n$2.00"
我如何验证字符串是否存在,同时又从字符串中忽略日期和价格,因为它们不断变化

理想情况下,我希望验证是否显示整数或日期时间,但值并不重要。

一些策略和高级示例 您可以使用以下几种基本策略:

  • 使用类似gem的TimeCop来修复测试的时间戳
  • 使用fixture数据测试应用程序的逻辑,而不是使用真实(或至少是动态)数据
  • 使用出厂数据为每个测试生成一个已知值
  • 测试结果的格式或结构,而不是特定的元素
  • 作为上一个的基本示例,我们假设您的数据始终具有相同数量的字段,并且使用
    /n
    而不是换行符作为分隔符。您可以构建测试以验证:

    • /n
      上拆分时返回的字段数是您所期望的
    • 第四个字段是有效的日期或日期时间对象
    • 第六个或最后一个字段仅包含
      /^\$\d+.?\d*$/
      ,或字符串结构或内容的其他验证

    使用这些类型的测试,您验证的是结构,而不是特定的值,这可能就足够了。如果需要测试值,则需要使用不同的策略,允许您提前定义预期值。

    @stefan-是的,这是我的错。将立即更新。