【问题标题】:How to write a rspec testing for hash如何为哈希编写 rspec 测试
【发布时间】:2020-02-11 00:24:15
【问题描述】:
尝试为下面的代码编写 rspec 测试。该规范假设测试是否通过了正确的密钥。我是否制作了一个散列变量并期望键等于变量键。我不确定如何设置它。
def something_att
Hash[
%i(name age).map do |k|
[k, send(k)]
end
]
end
【问题讨论】:
标签:
ruby-on-rails
rspec
ruby-on-rails-5
【解决方案1】:
不带参数的第一个版本something_att
it "test something_att" do
hash_result = something_att
expect(hash_result).to eq(
name: 'john doe',
age: 40
)
end
带有参数的第二个版本something_att
(但你必须改变 something_att 方法)
我更喜欢使用它,因为它可以更灵活地与您可以设置的参数一起使用
it "test something_att" do
hash_data = { name: 'john doe', age: 20 }
hash_result = something_att(hash_data)
expect(hash_result).to eq(
name: 'john doe',
age: 40
)
end
【解决方案2】:
正如你所说,规范假设测试正确的密钥是否通过。
describe "#something_att" do
it "should have right keys" do
expect(something_att.keys.sort).to eq ['name', 'age'].sort
end
end