我有一个带有此验证的用户模型
validates :name, :lastname, :format => {:with => /^[a-zA-Z]+$/, :message => 'Only letters and spaces allowed.'}
我不确定如何正确测试它。
我已经完成了一个函数,它返回一个由 a-zA-z 字符数组中的 10 个字符组成的随机字符串。
def get_random_name
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split('').shuffle[0..10].join
结束结束
然后我为我的规范的每次运行获得一个新名称。
我不想测试它是否使用了一些正则表达式,因为那样我将测试实现而不是行为,而且我也不想只测试一个硬编码的情况。
我的问题是:我应该这样做吗?真的需要吗?是更好还是没用?您知道测试这种验证的更好方法吗?
编辑:另一个问题,如何生成无效的随机名称?有没有办法创建在允许值之外至少包含一个字符的随机名称?我不能硬编码一个包含所有无效值的数组来随机化它,因为它太大了