小编Viv*_*vek的帖子

如何从Ruby中的Mocha模型返回动态值

我的问题的要点如下: -

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

require 'rubygems'
require 'mocha'
include Mocha::API

class EmbassyInterface 
  def post_to_embassy(xml)
    puts "This is from the original class:-"
    puts xml
    return xml
  end
end

orderInfoXml = "I am THE XML"

mock = EmbassyInterface.new
prc = Proc.new do |orderXml| 
  puts "This is from the mocked proc:-"
  puts orderXml
  orderXml
end

mock.stubs(:post_to_embassy).with(&prc)
mock_result = mock.post_to_embassy(orderInfoXml)
p mock_result
#p prc.call("asd")
Run Code Online (Sandbox Code Playgroud)

输出: -

This is from the mocked proc:-
I am THE XML
nil
Run Code Online (Sandbox Code Playgroud)

ruby mocking mocha.js

14
推荐指数
2
解决办法
8522
查看次数

标签 统计

mocha.js ×1

mocking ×1

ruby ×1