json[:errors] = ["Username can't be blank", "Email can't be blank"]
字符串
en.yml中的错误本身提供为:
username: "can't be blank",
email: "can't be blank"
型
测试:
expect(json[:errors]).to include t('activerecord.errors.messages.email')
型
失败是因为它正在查看字符串“Email can't be blank”,而“can't be blank”与它不匹配。
我的问题是,测试子字符串是否包含在数组json[:errors]中包含的字符串中的最佳方法是什么
1条答案
按热度按时间v2g6jxz61#
RSpec提供了一系列匹配器。在这种情况下,您需要使用
include
匹配器(docs)来检查数组的每个元素。你需要使用match
正则表达式匹配器(docs)来匹配子字符串:字符串
为了可读性,
match
正则表达式匹配器别名为a_string_matching
,如下所示:型
更新:
我刚刚注意到OP的问题包含了一个数组,其中包含了多个匹配元素。包含匹配器检查数组的任何元素是否与条件匹配。如果需要检查数组的所有元素是否匹配条件,可以使用all matcher(docs)。
型