Ruby Mocha 如何存根嵌套哈希?

How does Ruby Mocha stub a nested hash?

我这里有一个方法需要使用 Mocha 进行模拟,但目前我不知道如何在这里模拟嵌套哈希。

Products.new(:A => "aa", :B => "bb").containers['container_A'].elements['element_b']

到目前为止,我知道如何存根 Products.new(:A => "aa", :B => "bb"),但不知道它后面的哈希部分。

提前致谢。

hash/OpenStruct怎么样?

require 'ostruct'

product.expects(:containers).
        returns('container_A' => OpenStruct.new(:elements => {'element_b' => 'expected_value'}))

puts product.containers['container_A'].elements['element_b']
# => expected_value