问题标签 [ruby-mocha]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
718 浏览

ruby - Ruby Mocha - 如何指定“.with”多个“.times”

我希望能够将多个.with期望链接在一起。目前我将它们放在不同的行 -

有了.returns你就可以做 -

理想情况下,我希望能够 -

或者

0 投票
1 回答
1725 浏览

ruby - 毫无期望地使用 mocha 来存根方法

我在我的一个测试的设置中存根这样的方法

问题是不是每个测试都会调用方法并返回对象。

在不调用该方法的方法中,我收到此错误:

允许任意次数,尚未调用:GoogleIdentity.new()

似乎 mocha 正在抱怨,因为没有调用该方法。

如何指定一个不希望它被调用的存根?

0 投票
1 回答
132 浏览

ruby - 如何在 Mocha 中对模拟进行子类化?

我需要模拟一个对象,其类应该定义一些常量,例如:

由于昂贵的初始化,我不想在单元测试中简单地使用类的实例,而且它有一个简单的接口,因此它是模拟的最佳选择。如果我可以简单地继承Mocha::Mock并添加一些完美的常量。不过,我还没有找到实例化这些子类的方法。他们需要“嘲笑”作为初始化参数。我试过了:

结果很有趣:

意外调用:#<Mock:0x35c0690>.instance_method_get(:@mockery)

摩卡的来源相当复杂和纠结。我什至找不到mock为每个创建的点Minitest::Test对象创建的点。

那么我如何在 Mocha 中对模拟进行子类化呢?有没有直接的方法?


我的备用解决方案是简单地使用上面显示的三行类driver.stubs(:name)...而不是使用模拟,但这感觉像是解决问题的错误方法。

0 投票
1 回答
2131 浏览

ruby - Ruby Mocha:是否有与 rspec-mocks 的 #and_call_original 等价的东西?

Rspec 模拟具有expect(some_object).to receive(:some_method).and_call_original. 我可以用摩卡做这个吗?如果可以,怎么做?some_object.expects(:some_method).......什么?

0 投票
0 回答
81 浏览

ruby-on-rails - 摩卡。期望没有存根

我有这样摩卡咖啡。

我有这个:

我想publish_to_sns执行它的功能。

0 投票
1 回答
193 浏览

ruby - Ruby Mocha Unittest 找不到“has_key”方法

我已经使用Test::UnitMocha编写了单元测试。我正在使用“期望”来模拟我正在测试的类中的方法,并且我想检查某个参数是否传递到对象中:

在我的开发系统上,这运行得很好。在我同事的计算机以及 Travis CI 服务器上,单元测试失败并出现以下错误:

Mocha 应该添加到单元测试的所有其他方法也是如此,例如“mock()”方法。

我知道摩卡对进口订单很挑剔。我在“测试/单元”之后导入了它,但是:

如果有人需要更多上下文,完整的测试文件在这里。其实完整的项目是开源的,而且是一个比较小的项目:GitHub;完整的错误日志可以在Travis CI上看到。

我对我可以尝试什么没有更多的想法。我们甚至确保我的同事拥有与我完全相同的 gem 版本;并且 Ruby 版本也是相同的。

在此先感谢 Ruby Guru 提供的任何帮助,我将不胜感激!

0 投票
1 回答
274 浏览

ruby-on-rails - 测试时未定义存根

假设,我正在运行这个测试

但我得到:undefined method 'stub' for nil:NilClass。我以为它与nil实例有关,实际上当我@mymodel用数据转储时,我得到了相同的消息undefined method stub'。然后我尝试@mymodel.stubs(:method).and_return { true }了,我收到了这个消息

我该如何解决?

0 投票
1 回答
297 浏览

ruby-on-rails - Mocha on Ruby:检查一次调用的存根函数

它应该是直截了当的,但它对我不起作用。

我正在存根一个函数调用,我想确保它被调用一次,所以我做了:

但我不断得到:

我究竟做错了什么?

0 投票
1 回答
42 浏览

ruby-on-rails - 如何在 Rails 中模拟关联对象?

我知道我可以按如下方式模拟对象:

我记得听说这被认为是一种糟糕的做法。我想做类似的事情

但这似乎并没有模拟正确的对象。有没有比any_instance在课堂上使用 call 更好的解决方案?

编辑:我得到的错误信息是

0 投票
1 回答
121 浏览

ruby-on-rails - mocha 在 rspec 中使用时创建的模拟的范围是什么?

在我的 rspec 测试套件中,我使用 mocha 库来创建模拟/存根和测试替身。按照建议,我的 rspec 套件中的示例以随机顺序运行。由于某种原因,一些示例现在随机失败。我已经排除了共享数据库状态和全局变量(我承认:我的 Rails 应用程序中有全局变量)。

另一个合乎逻辑的嫌疑人(也许)是模拟库。根据此处的 rspec 文档, rspec 将在每个示例之后清除所有模拟,即使是在 before(:all) 中创建的模拟。这应该适用于任何模拟库,对吧?也许...

由于历史原因,我的测试套件不使用内置的 rspec 模拟,我们使用 mocha 库。

问题: rspec 会在每个示例之后清除 mocha 创建的所有模拟/存根吗?