ruby - 如何在 rspec 中测试 .sample 方法?

标签 ruby rspec

我正在用 rspec 编写测试:

it "should choose a sign at random" do
  game.choose_sign
  expect(game.choose_sign).to eq "rock"
end

ruby 代码:

def choose_sign
  ["rock","paper","scissor"].sample
end

The code works but the test only passes when one of the values has been selected that matches whatever I put in the rspec test i.e. eq "rock"

如何让它每次都通过?这对于将来测试随机返回值时的引用非常有用。

最佳答案

您可以测试预期的集合包括您的方法的结果:

it "chooses a random sign" do
  expect(["rock","paper","scissor"]).to include(game.choose_sign)
end

关于ruby - 如何在 rspec 中测试 .sample 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26206237/

相关文章:

ruby - 如何在测试模式下启动mailman服务器

ruby-on-rails - Rails 4 - 属性为空的地方

ruby-on-rails - 添加图像以设计 Mailer 模板

colors - 使用 Conemu 的 Rspec 颜色

jquery - capybara-webkit 无法模拟点击(非链接/按钮)元素

ruby-on-rails - Rspec 如何为重写的方法设置对父类(super class)的期望

ruby-on-rails - 在 Rails 中渲染 json 时,如何从包含的关联中排除条目?

ruby-on-rails - WebMock.disable_net_connect!不工作

ruby-on-rails - rspec - 使用命名空间时,rails 路由到错误的 Controller ,但只是有时

ruby-on-rails - 用于 Rails 的 RSpec 和 ActiveRecord : How to write effective tests