问题标签 [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 - 模拟/存根包含在“instance.extend(DecoratorModule)”中的方法
我使用了一个包含在模型实例中的装饰器模块(通过“扩展”方法)。例如:
然后我想在测试中执行以下操作(使用 Mocha):
这是否有可能,或者您是否有其他方式来获得此功能???
ruby - 如何在摩卡中断言模拟块
这个例子是人为的,请不要将它逐字作为我的代码。
我需要断言如下内容:
最后,我想断言:
- 使用适当的参数调用 Dir.chdir。
- ` 使用适当的参数调用
我开始...
但在那之后我不确定如何调用传递给 Dir.chdir 的块。
ruby-on-rails - Ruby on Rails:测试对第三方 API 调用失败的最佳方法
我现在调用第三方 Web 服务作为我的应用程序的一部分。我正在使用 RestClient gem 来执行此操作。有很多工具可以做同样的事情,所以这无关紧要。
我很好奇的是有足够好的测试,没有什么太花哨的,我可以模拟我的应用程序在第三方 Web 服务因任何原因不可用时如何响应。由于网络延迟/复杂性,我超过了速率限制或超时,我只想能够获取 HTTP 状态代码之类的内容并测试我的应用程序在该事件中的作用。
使用 Test::Unit 执行此操作的最佳方法是什么?现在,对第三方服务的调用被封装在我的一个控制器中。我有一个简单的模块,其中包含一些用于远程服务不同端点的包装方法。我只想确保我的应用程序在服务可用或不可用时执行正确的操作。
是否在 Test::Unit 旁边使用了一个可以“存根”执行此操作的正确方法的附加框架?显然,我不能强制网络超时,并且为了测试而开始使用 IPtables 之类的东西是不值得的。我确信这个问题已经解决了一百万次,因为如今将 Facebook 和 Twitter 等东西集成到 Web 应用程序中非常流行。当以健壮/受控的格式访问这些 API 时,您如何测试失败?
ruby - 你如何模拟像“每个”这样的方法?
我正在尝试测试一种使用 CSV.foreach 读取 csv 文件并对其进行处理的方法。它看起来像这样:
CSV.foreach 将文件路径作为输入,读取文件并解析逗号分隔值,为文件中的每一行返回一个数组。每个数组依次传递给代码块进行处理。
我想使用 Mocha 来存根该foreach
方法,这样我就可以process_csv
从我的测试中控制该方法的输入,而无需任何文件 I/O mumbo-jumbo。
所以测试会是这样的
我需要一种方法将我的test_input
数组变成 Mocha 可以使用的东西。我想我必须使用某种 proc 或 lambda,但我发现 procs、blocks 和 lambdas 的世界有点让人费解。
ruby - 如何在单元测试之外使用 mocha?
我正在尝试在单元测试之外使用 mocha 来模拟 Net::HTTPResponse 对象。这是一个简单的例子:
我收到此错误:
ruby - 断言没有存根的方法调用?
我想断言调用了一个特定的方法,但我不想模拟/存根该方法 - 我也想在测试中包含该代码。
例如,在 Ruby 中,类似:
有没有人有建议(或更好的方法)?我的实际代码要复杂得多,所以请不要考虑示例的简单性。
ruby-on-rails - 如何使用 RSpec 和 Mocha 模拟 ActsAsTaggableOn?
如何使用 RSpec 和 Mocha 模拟 ActsAsTaggableOn::tag ?我是 Rails 测试的新手,所以我可能会遗漏一些明显的东西......
我试过了 :
/spec/controllers/books_controller.rb
/app/controllers/books_controller
我得到:
ruby-on-rails - 使用 mocha,有没有办法用许多参数存根?
假设我有这门课
我可以使用以下方法存根整条方法:
但是,如果我只想在 bar 方法的 param1 为真时存根,我找不到办法:
我还查看了 with 和 has_entry,它似乎只适用于单个参数。
我期待这样的一些功能。
谢谢
..................................................... . 编辑以下内容..........................
谢谢,纳什
不熟悉 rspec,所以我尝试使用 any_instance 进行单元测试,它似乎有效
ruby-on-rails - Mocha:当有多个不同参数的调用时如何添加对方法的期望
我有一个 Rails 控制器动作要测试。在那个动作中,一个方法 User.can? 使用不同的参数多次调用。在其中一个测试用例中,我想确保调用 User.can?('withdraw') 。但我不关心 User.can 的调用?与其他参数。
我在测试中尝试了以下内容:
但测试失败,消息表明意外调用 User.can?('deposit')。如果我使用参数“存款”添加另一个期望,则测试通过。但是我想知道是否有任何方法可以让我只关注带有“withdraw”参数的调用(因为其他调用与这个测试用例无关)。