问题标签 [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 投票
3 回答
5387 浏览

ruby - 在 Ruby 中模拟构造函数

我是一名 Java 开发人员,正在玩弄 Ruby,并且喜欢它。我了解到,由于 Ruby 的元编程工具,我的单元测试变得更加清晰,并且我不需要讨厌的模拟框架。我有一个需要File类服务的类,在我的测试中我不想接触我真正的文件系统。在 Java 中,我会使用一些虚拟文件系统来更轻松地“接缝”来传递假对象,但在 Ruby 中,这显然是矫枉过正。与 Java 世界相比,我想出的东西似乎已经很不错了。在我的测试类中,我有一个可选的构造函数参数:

当我需要在课堂上打开文件时,我可以这样做:

并且调用转到真正的文件类,或者在我的单元测试的情况下,它转到不接触文件系统的假类。我知道必须有更好的方法来使用元编程来做到这一点?

0 投票
2 回答
7173 浏览

ruby - 从工厂女孩那里返回模拟对象

我在 JRuby rails 应用程序中使用 Mocha 和 Factory_girl。当我打电话给工厂时,我想返回已经完成一些模拟的对象。这是我正在尝试做的代码片段。

因为我不希望我的单元和功能测试实际上从 twitter API 中提取,所以我想存根该方法,以便它返回我想要的。但是,这是行不通的。对象在没有任何存根的情况下返回。有没有办法在工厂女孩创建的对象返回给您之前实际执行存根?

0 投票
2 回答
7384 浏览

ruby-on-rails - Mocha:您如何为实例方法设置期望?

假设这个红宝石代码:

我想编写一个测试来测试 user.save 在给出无效电子邮件时永远不会被调用。例如:

此测试当前通过,但当我提供有效的电子邮件地址时它也通过了。

如何使用 Mocha 设置期望值?(或任何其他模拟框架),以便它测试任何用户实例的保存方法永远不会被调用?

(最好不要存根/模拟 find_by_email 方法,因为将来如何获取用户的实现可能会改变)

干杯

0 投票
1 回答
1289 浏览

ruby-on-rails - 在 Rails 2.3.3 项目中安装 Mocha 0.9.7

我使用以下方法安装了 Mocha 0.9.7 Rails 插件:

(只需按照http://mocha.rubyforge.org/中的说明进行操作)

然后,我在功能测试中定义了以下设置

运行测试会生成 ff。错误:

在此之前,我看到了ff。测试日志顶部的错误:

这让我相信我在 Ruby 或 Rails 路径中的某个地方有一个旧版本的 Mocha。问题是我找不到。

我的猜测正确吗?如果是这样,这个旧版本的摩卡在哪里?或者,我怎样才能知道它在哪里?

0 投票
1 回答
1778 浏览

ruby - 无法在 IronRuby 中加载 gem

我已经删除了所有环境变量和 ruby​​/ironruby 目录并从头开始重新安装。然后我通过 igem 安装了 mocha。这是我的输出。

列出我安装的 gem。. .

这是我的宝石环境。

希望你能帮我解决这个问题:(

0 投票
1 回答
7935 浏览

ruby-on-rails - Rails Test & Mocha:如何存根特定模型 - 条件 any_instance?

我只想存根一个特定的模型,但不仅仅是一个特定的对象,而不是每个实例

例如,给定类“Person”,其属性为“name”(字符串)和“cool”(布尔值)。我们有两个模型:

现在我只想存根 steve,它可以正常工作:

但是,如果我再次从数据库加载模型,它不会:

这有效,但也会影响比尔,这不应该:

那么我怎么能只是史蒂夫存根,但无论如何?是否有条件 any_instance 像

提前致谢!

0 投票
2 回答
1447 浏览

ruby - 在 Cucumber 中存根 Sinatra 助手

我目前正在努力从Cucumber中删除我的Sinatra应用程序的辅助方法。

我有一个带有简单会话身份验证(通过 cookie)的Sinatra应用程序,我想通过为我的Cucumber场景删除logged_in?辅助方法来关闭身份验证。Sinatra 和 Cucumber 似乎在会话方面存在问题,所以我考虑只使用 Mocha 来解决这个问题。

但是我不知道如何Sinatra::ApplicationGiven-Block 中访问该实例以存根该方法。

0 投票
1 回答
1253 浏览

ruby-on-rails - RR mock.instance_of 和 Mocha any_instance 的区别

我有以下 rspec 代码:

它以书面形式成功通过(RR 语法被注释掉)但是当我切换到 RR 语法时它失败了:

'ProjectsController 创建一个新项目应重定向到项目并通知成功保存' FAILED 预期 new_record?返回假,得到真

RR会失败的两者有什么区别?

0 投票
2 回答
202 浏览

ruby-on-rails - 模拟方法的代码是否实际运行

嗨,我正在将 Mocha 用于 Rails 项目。我是 TDD 的新手,所以如果这是一个愚蠢的问题,请原谅我。

如果我有这个

那么我是否正确地假设代码create_config()不会运行,而只会返回 true ?

0 投票
2 回答
1304 浏览

ruby - mocha 和嵌套对象

对不起,如果这是一个愚蠢的问题,我是新来的嘲笑。

我可以使用 mocha 来执行以下操作:

如何模拟嵌套对象?

假设我有一个属于某个人的产品,我想获得那个人的名字。

在我的应用程序中,我可能会这样做:

如何使用模拟获得相同的结果?