问题标签 [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.
ruby - Ruby Mocha - 如何指定“.with”多个“.times”
我希望能够将多个.with
期望链接在一起。目前我将它们放在不同的行 -
有了.returns
你就可以做 -
理想情况下,我希望能够 -
或者
ruby - 毫无期望地使用 mocha 来存根方法
我在我的一个测试的设置中存根这样的方法
问题是不是每个测试都会调用方法并返回对象。
在不调用该方法的方法中,我收到此错误:
允许任意次数,尚未调用:GoogleIdentity.new()
似乎 mocha 正在抱怨,因为没有调用该方法。
如何指定一个不希望它被调用的存根?
ruby - 如何在 Mocha 中对模拟进行子类化?
我需要模拟一个对象,其类应该定义一些常量,例如:
由于昂贵的初始化,我不想在单元测试中简单地使用类的实例,而且它有一个简单的接口,因此它是模拟的最佳选择。如果我可以简单地继承Mocha::Mock
并添加一些完美的常量。不过,我还没有找到实例化这些子类的方法。他们需要“嘲笑”作为初始化参数。我试过了:
结果很有趣:
意外调用:#<Mock:0x35c0690>.instance_method_get(:@mockery)
摩卡的来源相当复杂和纠结。我什至找不到mock
为每个创建的点Minitest::Test
对象创建的点。
那么我如何在 Mocha 中对模拟进行子类化呢?有没有直接的方法?
我的备用解决方案是简单地使用上面显示的三行类driver.stubs(:name)...
而不是使用模拟,但这感觉像是解决问题的错误方法。
ruby - Ruby Mocha:是否有与 rspec-mocks 的 #and_call_original 等价的东西?
Rspec 模拟具有expect(some_object).to receive(:some_method).and_call_original
. 我可以用摩卡做这个吗?如果可以,怎么做?some_object.expects(:some_method)....
...什么?
ruby - Ruby Mocha Unittest 找不到“has_key”方法
我已经使用Test::Unit和Mocha编写了单元测试。我正在使用“期望”来模拟我正在测试的类中的方法,并且我想检查某个参数是否传递到对象中:
在我的开发系统上,这运行得很好。在我同事的计算机以及 Travis CI 服务器上,单元测试失败并出现以下错误:
Mocha 应该添加到单元测试的所有其他方法也是如此,例如“mock()”方法。
我知道摩卡对进口订单很挑剔。我在“测试/单元”之后导入了它,但是:
如果有人需要更多上下文,完整的测试文件在这里。其实完整的项目是开源的,而且是一个比较小的项目:GitHub;完整的错误日志可以在Travis CI上看到。
我对我可以尝试什么没有更多的想法。我们甚至确保我的同事拥有与我完全相同的 gem 版本;并且 Ruby 版本也是相同的。
在此先感谢 Ruby Guru 提供的任何帮助,我将不胜感激!
ruby-on-rails - 测试时未定义存根
假设,我正在运行这个测试
但我得到:undefined method 'stub' for nil:NilClass
。我以为它与nil
实例有关,实际上当我@mymodel
用数据转储时,我得到了相同的消息undefined method stub'
。然后我尝试@mymodel.stubs(:method).and_return { true }
了,我收到了这个消息
我该如何解决?
ruby-on-rails - Mocha on Ruby:检查一次调用的存根函数
它应该是直截了当的,但它对我不起作用。
我正在存根一个函数调用,我想确保它被调用一次,所以我做了:
但我不断得到:
我究竟做错了什么?
ruby-on-rails - 如何在 Rails 中模拟关联对象?
我知道我可以按如下方式模拟对象:
我记得听说这被认为是一种糟糕的做法。我想做类似的事情
但这似乎并没有模拟正确的对象。有没有比any_instance
在课堂上使用 call 更好的解决方案?
编辑:我得到的错误信息是
ruby-on-rails - mocha 在 rspec 中使用时创建的模拟的范围是什么?
在我的 rspec 测试套件中,我使用 mocha 库来创建模拟/存根和测试替身。按照建议,我的 rspec 套件中的示例以随机顺序运行。由于某种原因,一些示例现在随机失败。我已经排除了共享数据库状态和全局变量(我承认:我的 Rails 应用程序中有全局变量)。
另一个合乎逻辑的嫌疑人(也许)是模拟库。根据此处的 rspec 文档, rspec 将在每个示例之后清除所有模拟,即使是在 before(:all) 中创建的模拟。这应该适用于任何模拟库,对吧?也许...
由于历史原因,我的测试套件不使用内置的 rspec 模拟,我们使用 mocha 库。
问题: rspec 会在每个示例之后清除 mocha 创建的所有模拟/存根吗?