ruby - 使用 rspec 断言用户数组中的所有 user.name 都以前缀开头的更好方法?

标签 ruby unit-testing rspec

这是我的。还有那种工作。

it "should filter by name" do
  users = users.search(:name => "s")
  users.each {|u| 
    u.name.should be_starts_with("s")
  } 
end

不过rspec返回的错误信息真的很差...

expected starts_with?("s") to return true, got false

有没有办法获得更精确的消息,显示失败的元素,或者至少是它的索引?

最佳答案

在这样的二进制测试中,我会创建两个用户,一个以 s 开头,另一个不带。然后我会检查是否只返回了预期的元素。

喜欢

set up a user(:name => "Sam") and user(:name => "Fred")

filtered_users.map(&:name).should =~ ["Sam"]

如果失败,你会看到类似的东西

expected ["Sam"]
got ["Fred", "Sam"]

这更明确地说明了你在做什么

关于ruby - 使用 rspec 断言用户数组中的所有 user.name 都以前缀开头的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8029787/

相关文章:

ruby - 如何使用 rack::test 发送自定义 header ?

ruby-on-rails - Rails 抛出不允许的参数 : name error when using Devise

ruby-on-rails - ExecJS::RuntimeError: SyntaxError: 意外的标记:运算符 (>) (行:22342,列:24,位置:826182)

unit-testing - IronPython是否支持Testoob进行单元测试?

c# - 如何对使用线程的方法进行单元测试?

ruby-on-rails - 测试环境 - 回形针错误

ruby-on-rails - 使用 Rspec (Rails) 单元测试回形针上传

ruby-on-rails - 如何在 ruby​​ 中重试 rpush 通知?

ruby-on-rails - 尝试克隆一个旧的 repo 并获取 PGconn、PGresult 和 PGError 常量已被弃用,并将从 1.0 版开始删除

java - 将用户角色添加到 Spring MVC 测试框架中的请求