我使用 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/