问题标签 [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-on-rails - NoMethodError:minitest 和 mocha 的未定义方法“模拟”
我正在为 Rails 3 开发一个 gem,在 travis-ci.org 在 Ruby 1.8.7 下运行它时遇到了一个错误:
这是失败工作的链接:https ://travis-ci.org/#!/pokonski/public_activity/jobs/2586051
在 Ruby > 1.8.7 中一切正常。
我的 .gemspec 的相关部分:
和宝石文件:
有趣的是,当使用 ruby-1.8.7-p370 在本地运行测试时,使用不同的缺失方法会出现错误:
失败行的更多源代码:https ://github.com/pokonski/public_activity/blob/master/test/test_common.rb#L85
有人知道发生了什么吗?
ruby - Mocha:为什么我不能存根 #caller 方法?
在简单的代码中使用Mocha
以意想不到的方式打开。你能解释一下出了什么问题吗?
所以使用这个简单的类,我们可以得到最新的调用者:
但是如果我想存根caller
调用,事情就会出错。
我的猜测是查看Mocha
来源,但我稍后会这样做;)
- 红宝石 1.9.3p194
- 测试单元 2.5.0、2.4.8
- 摩卡咖啡 0.12.6
ruby - 使用 Mocha 提取类方法
我有一个我想用 rspec 和 Mocha 测试的方法。我的目标是存根Dir.glob
,以便只返回一个文件的简单数组。该方法定义如下:
和测试:
问题是该方法upload_dir
不是我想在这里测试的东西,我假设如果我取消任何调用Dir.glob
thenupload_dir
将永远不会被调用。Dir.glob
如果我在调用和调用之前放入调试器Dir.glob
,那么我会看到我的一个零文件数组,所以存根肯定是有效的。但是,当测试实际调用方法Dir.glob("#{upload_dir}/*.pdf")
时,它会尝试调用upload_dir
.
我正在使用 Ruby 1.9.3、rspec 2.12.0 和 mocha 0.13.0。
ruby - 如何从 Rake 中的系统命令打印到标准输出?
我有以下Rakefile
当我运行该命令rake test:api
时,我不会像运行该命令那样得到很好的点输出mocha
。
如何在 rake 任务中实时打印命令的输出?
ruby-on-rails - 使用 Mocha 进行模拟实际上如何允许您测试函数中的逻辑?
我开始学习如何模拟事物,因为对于有 1000 多个测试的项目来说,使用 Factory Girl 并不是很实用。我不能每次测试都访问数据库,特别是如果我希望进行任何类型的自动化持续集成。
我的测试:
上述测试的方法:
但这是我在运行测试时得到的:
不应该public_url
调用 invokestatus()
吗?
如果不是,那么如果我不得不打电话给p.status
自己,那是不是p.public_url()
完全无视我写的逻辑,并严格遵循我在中定义的内容expects
?这对单元测试有什么帮助?也许我不明白嘲笑的目的。
更新:
根据@Philip 的建议,我将我的测试更改为这个,消除了对任何 ActiveRecord 恶作剧的需要:
我想现在我的问题是,我如何使用一个固定装置(我已经命名localhost
?)来存根一个帐户。我收到一个错误:undefined method 'full_domain' for Mocha::Expectation:
但我的夹具定义如下:
我设置了固定装置,这样我就可以拥有常用模型的基础知识,以便在我的所有测试中轻松使用。每个测试的标准模型/关系(如果我是手动/与工厂女孩一起进行测试,没有嘲笑,将需要:
Account
,Subscription
(has Account
,SubscriptionPlan
),,SubscriptionPlan
(User
属于Account
),AccountProperties
(has Account
),然后是实际的对象我在测试on,属于anAccount
和a User
on that Account
,每次测试都有点多。哈哈
更新 2:
得到它的工作:
事实证明,您可以访问诸如accounts
或之类的固定装置users
。
ruby - 为什么 mocha 没有在我的 Rails 3 集成测试中存根此方法?
我有以下内容:
然而我有一个测试失败,因为 Project.price_all 方法正在运行:
在我升级到 Capybara 2 和最新版本的 capybara-webkit 之前,这一直正常工作。
为什么该方法仍在运行?我该如何解决?
rspec - 无法加载此类文件 -- mocha/object (LoadError)
当我运行 rspec 进行测试时,我得到了这个错误:
无法加载此类文件 -- mocha/object (LoadError) 问题出在以下行config.mock_with :mocha
:
这是我的 spec_helper.rb:
那么,我在这里缺少什么?
编辑
这是完整的错误:
编辑 2
这是我的 Gemfile
这是我的 Gemfile.lock
ruby-on-rails - 尝试启动 Rails 服务器时出现 mocha 预期错误
我有一个完美运行的 rails 项目,但是我不得不重新安装几个 gem 并在 rbenv 和 rvm 之间切换。我之前正在运行 rvm,然后我切换到 rbenv,开始出现一堆异常,尝试切换回 rvm 但仍然收到相同的错误。
我倾向于相信这不是 rvm/rbenv 问题,而是我的 gem 安装方式发生了变化。
这是完整的堆栈跟踪:
我的宝石版本:
在过去的 3 天里,这件事一直困扰着我,希望有任何帮助...
ruby - 如何在测试中绕过对超级方法的调用
我有这样的基本结构
什么是推荐的测试方法CompactCar
而不Automobile
运行代码Car
? Automobile#some_method
提供子类所需的结构,因此我想始终对其进行测试,但Car's
功能在其他地方进行了测试,我不想重复努力。
一种解决方案是使用class_eval
overwrite Car#some_method
,但这并不理想,因为覆盖的方法在我的测试期间保持不变(除非我使用 setup/teardown 方法重新加载原始库文件......有点丑陋的解决方案)。此外,简单地将调用存根Car#some_method
似乎不起作用。
是否有更清洁/更普遍接受的方式来做到这一点?
ruby - 相同方法的 Mocha 需要返回 2 个不同的值
使用 Mocha,我正在使用需要返回 2 个单独值的相同方法。无论我做什么,它只返回 2 个值中的 1 个,因此我的 rspec 测试中的 1 个总是失败。如何让存根在正确的时间返回正确的值?
编码:
我也用块这样尝试过before
。仍然没有运气。