问题标签 [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 回答
754 浏览

ruby - 用 Mocha 模拟排序

如何模拟数组的排序期望 lambda 表达式?

这是我的问题的一个简单示例:

现在,起初我预计这会奏效;但是,我收到以下错误:

我意识到这不起作用,因为 l 没有作为参数传递给 l。但是,是否有另一种方法可以完成此代码试图完成的任务?

注意:我已经弄清楚了如何解决我的问题,而没有弄清楚如何执行上述操作。我会保持打开状态,以防其他人遇到类似问题。

干杯,约瑟夫

0 投票
3 回答
1551 浏览

ruby-on-rails - 有没有办法撤消任何实例的摩卡存根?

在我的控制器规格中,我是否有效?对于一些路由测试,(基于 Ryan Bates nifty_scaffold)如下:-

当我单独测试控制器时,这很好。我的模型规格中也有以下内容

当单独测试时,这再次工作正常。如果我为模型和控制器运行规范,就会出现问题。模型测试总是失败为有效?方法已被淘汰。当控制器测试被拆除时,我有没有办法删除 any_instance 的存根。

我通过以相反的字母顺序运行测试来解决这个问题,以确保模型测试在控制器之前运行,但我真的不喜欢我的测试依赖于序列。

0 投票
4 回答
9780 浏览

ruby - 如何从 Ruby 中的 Mocha 模拟返回动态值

我的问题的要点如下: -

我正在为下面表示为“post_to_embassy”的方法在 Ruby 中编写 Mocha 模拟。为了描述问题,实际方法的作用并不是我们真正关心的。但我需要模拟返回一个动态值。下面的 proc '&prc' 代替实际方法正确执行。但是 Mocha 中的“with”方法只允许返回布尔值。所以下面的代码输出 nil。我需要它来输出通过 orderInfoXml 传递的值。有谁知道我可以使用的替代方法?

输出:-

0 投票
2 回答
207 浏览

ruby-on-rails - 对产生的对象调用的测试方法

我有以下控制器测试用例:

这很好用,除了我希望“stubs(:plainversion)”成为“expects(:plainversion)”。

这是控制器代码:

Cleaner 很简单:

同样,我不知道如何可靠地测试“解析”方法提供的“清洁器”。有什么建议么?

0 投票
3 回答
10768 浏览

ruby - 有没有办法撤消 Test::Unit 中 any_instance 的 Mocha 存根

就像这个问题一样,我也在使用 Ryan Bates 的 nifty_scaffold。它具有使用 Mocha 的any_instance方法来强制隐藏在控制器后面的模型对象中的“无效”状态的理想方面。

与我链接的问题不同,我没有使用 RSpec,而是使用 Test::Unit。这意味着那里的两个以 RSpec 为中心的解决方案对我不起作用。

是否有一种通用的(即:与 Test::Unit 一起使用)方法来删除 any_instance 存根?我相信它会导致我的测试出现错误,我想验证一下。

0 投票
2 回答
509 浏览

ruby - 尝试在 Mocha 中使用参数测试方法时出现奇怪的错误。是虫子还是我?

很难找到关于 Mocha 的任何文档,所以恐怕我完全在海上。我发现传递参数的存根方法存在问题。因此,例如,如果我设置这样的类:

是的,它是人为的,但它是对您可能有一个不想在测试中调用的方法的想法的简化。

所以我可能会写一个测试,例如:

现在我希望这会通过。但相反,我收到了这个相当神秘的错误消息:

这对我来说绝对没有任何意义,除了 Mochas 肠子深处的某些东西刚刚响起。如果我在没有将参数传递给第二种方法的情况下编写相同类型的测试,我不会有任何问题。我错过了什么吗?

0 投票
5 回答
4032 浏览

ruby - Mocha Mock 进行另一项测试

我一直遵循15 个 TDD 步骤来创建 Rails 应用程序指南 - 但遇到了一个我似乎无法解决的问题。对于 WordsController 的功能测试,我有以下代码:

在 Word 类中,我有以下代码:

当我运行测试时,我遇到以下错误(为简洁起见缩短了):

我已经尝试更改测试的顺序以及许多其他事情,但我一次又一次地继续收到相同的测试失败 - Word.random() 已经被调用。

我正在运行 Rails 3.0 beta 4 和 Mocha 0.9.8。我一直在努力寻找解决问题的方法,但似乎找不到。我是 Ruby/Rails 的新手,所以对语言和框架相当陌生。

提前致谢!

0 投票
3 回答
2478 浏览

ruby - Mock methods that receives a block as parameter

I have a scenario more or less like this

I am unit testing class A and I want to know if B#new is receiving the block passed to A#new. I am using Mocha as mock framework.

Is it possible?

0 投票
1 回答
1693 浏览

ruby-on-rails - 用 mocking 测试两种不同的期望

我最近刚刚将 Devise 添加到我的第一个 Rails3 应用程序中,但我在控制器测试方面遇到了一些麻烦。

我正在测试 User 控制器类,它与 Devise 使用的模型相同。所以在我的规范开始时,我有这个:

现在我可以在不使用模拟或存根的情况下通过测试:

但出于教育目的,我想知道如何让它与模拟和存根一起工作,通常它会完全直截了当,但似乎 DeviseUser.find在控制器操作之前调用,并使测试失败。

同样,通过增加twice期望,这也会失败,因为第一次调用 find 与我设定期望的不同。

任何见解将不胜感激。

0 投票
1 回答
1767 浏览

ruby - 使用 Rspec 2 和 Mocha 获取 Rails 3 生成器

我已经按照我在网上找到的所有步骤来配置带有 Rspec 2 和 Mocha 的 Rails 3。在我的 Gemfile 中:

在 spec/spec_helper.rb 中:

不过,当我使用 Rails 生成器时......

...我在 spec/controllers/foos_controller_spec.rb 中得到以下信息:

...这当然会导致所有规格失败。

有谁知道我错过了什么?

提前致谢。