【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 2013-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-29
        • 2019-08-19
        • 1970-01-01
        相关资源
        最近更新 更多