使用rspecRuby测试调用错误



如何实现应该抛出错误的rspec测试?下面我有一个包含以下字段定义的类

attr_accessor :name
attr_accessor :title
attr_writer :salary

下面是测试。基本上,您应该能够为:name:title输入新值,但:salary应该只实例化一次,并且只能实例化一次(在构造函数中)。

it 'does not respong to :salary=' do
  (subject.salary=100).should raise_error
end

这是我第一次尝试通过测试,但我仍然收到错误

def :salary=(input)
  nil
end

错误消息:

def :salary=(input)
     ^

对错误进行断言的RSpec语法(至少是最新版本)应该类似于:

it 'does not respond to :salary=' do
  expect { subject.salary = 100 }.to raise_error
end

您还会遇到语法错误(不是所需的错误)。省略冒号。

def salary=(value)
end

相关内容

  • 没有找到相关文章

最新更新