【发布时间】:2013-01-27 05:09:48
【问题描述】:
我有一个经过此验证的用户模型
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
结束 结束
然后每次运行我的规范都会得到一个新名称。
我不想测试它是否使用了一些正则表达式,因为那样我将测试实现而不是行为,而且我也不想只测试一个硬编码的情况。
我的问题是:我应该这样做吗?真的需要吗?是更好还是没用?您知道测试这种验证的更好方法吗?
编辑:另一个问题,如何生成无效的随机名称?有没有办法创建在允许值之外至少包含一个字符的随机名称?我不能硬编码一个包含所有无效值的数组来随机化它,因为它太大了
【问题讨论】:
标签: rspec rspec-rails