如何在Ruby测试中正确使用正则表达式

时间:2018-10-21 20:51:40

标签: ruby regex

在测试中,函数输出的末尾有一个随机数。我需要使用正则表达式。当我手动检查输出时,它可以正常工作。但是我的测试没有通过。外观如下:

assert @tester.image == "http://loremflickr.com/300/300?random=#{/\d{1,3}/}"

URL的末尾包含1-3位数字。示例:

...random=476

在这种情况下如何正确使用正则表达式?

1 个答案:

答案 0 :(得分:4)

您可以使用assert_match,而不必手动处理该过程,从而使过程更加冗长。如果您的正则表达式工作正常,则:

assert_match /http:\/\/loremflickr\.com\/300\/300\?random=\d{1,3}/, @tester.image

或者不必转义特定字符:

%r{http://loremflickr\.com/300/300\?random=\d{1,3}}