我在rspec中编写测试,并试图用let
声明一些变量。
describe 'my_test' do
let(:params) {{
:happy => 1,
:sad => 0,
}}
context 'mixed' do
let(:params) {{
:happy => 1,
:sad => 1,
}}
end
end
但后来我看到变量可以用super
进行过度编写,这对于很长的params列表很方便:http://myronmars.to/n/dev-blog/2013/02/rspec-2-13-is-released
所以我的问题是,如何覆盖原始哈希中的单个值?我尝试过搜索,但只能找到覆盖所有值的方法。是否有类似下面的内容?
let(:hash) { super().updatehash('sad', '1') }
答案 0 :(得分:7)
您可以使用Hash#merge
重载哈希变量let(:hash) { super().merge(:sad => '1') }
它将覆盖原始哈希中的所有键值,并使用您在哈希中提供的键值对来合并它。
如果您想要合并doco的链接,apidock很好: