ruby - Minitest:没有更多可用的期望

标签 ruby minitest

我使用 minitest 为我的网络项目编写测试。
我有一个模拟对象,模拟了 3 个方法。该对象表示具有多个属性的数据库实体(hanami 模型)。现在,如果我多次为一个属性调用“getter”,我会得到一个 MockExpectationError:没有更多期望可用于属性。
在不创建变量来保存返回数据的情况下如何处理这个问题?
以下是我如何设置此方法:

user_mock = Minitest::Mock.new
user_mock.expect :is_allowed?, true, [String, String]
user_mock.expect :ad_login, 'somestring'
user_mock.expect :id, 2

最佳答案

只需向您多次调用的函数添加一些expects

说是

user_mock.expect :is_allowed?, true, [String, String]

您可以添加更多期望,甚至可以在每次调用中更改返回值或期望参数。 因此,如果您想调用它 3 次,只需再添加 2 次,这样您就会得到:

user_mock = Minitest::Mock.new
user_mock.expect :is_allowed?, true, [String, String]
user_mock.expect :is_allowed?, false, [String, String]
user_mock.expect :is_allowed?, true, [String, String]
user_mock.expect :ad_login, 'somestring'
user_mock.expect :id, 2

值将按照您定义的相同顺序返回。

关于ruby - Minitest:没有更多可用的期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39446671/

相关文章:

ruby - 什么命令打开 Ruby 的 REPL?

ruby-on-rails - 如何在 Rails 中使用具有外键约束的数据库中的测试和装置?

ruby-on-rails - Rails 4.0 运行时错误 : @controller is nil: make sure you set it in your test's setup method

unit-testing - 如何在 minitest 中测试异常?

ruby-on-rails - 使用Minitest,需要 'minitest_helper'加载错误

ruby - 为什么 #!/usr/bin/env ruby​​ 在 crontab 中不起作用?

ruby pg 无法确定参数的数据类型

ruby-on-rails - 启动同一作业的多个延迟作业进程

css - 可重复使用的超薄参数?

ruby-on-rails - 你如何使用带有 attr_encrypted 的装置