【问题标题】:How to write RSpec for method that raises error如何为引发错误的方法编写 RSpec
【发布时间】:2021-05-28 00:10:37
【问题描述】:

您好,我想为下面的方法编写 RSpec 测试

Class A
 def test
   val = nil
   raise "invalid" unless var
  end
end

有人可以帮我吗,当valnil 时,我该如何为#test 方法编写RSpec

【问题讨论】:

标签: ruby rspec


【解决方案1】:

我愿意:

describe A do
  let(:a) { A.new }
 
  describe '#test' do
    it "raises an error" do
      expect { a.test }.to raise_error("invalid")
    end
  end
end

【讨论】:

  • 有趣。为什么要将字符串传递给describe?如果你通过了课程,你可以使用subjectdescribed_classpastebin.com/dsFdaqMc
  • @SergioTulentsev:更改describe A。最近两年我没有写过一行RSpec,因此忘记了我可以直接通过课程。关于subjectdescribed_class,我不喜欢它们,因为如果不查看文件顶部的定义,并不总是清楚它们所指的内容。我认为更明确时更清晰,更容易阅读和理解。
  • 对于每个人来说,我猜 :) 我自己不使用简单的主题,我将其命名为:subject(:a) { A.new }。但是described_class,我很喜欢。它支持通用规范(shared_examples_for 等)。根据我的经验,它不会过多地妨碍阅读。
猜你喜欢
  • 2017-08-23
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 2023-03-20
  • 1970-01-01
  • 2021-08-14
相关资源
最近更新 更多