我有一个非常奇怪的rspec情况.我试图测试我的函数是否正确处理异常.以下是我的代码:
在User.rb中:
def welcome_user
begin
send_welcome_mail(self)
rescue Exception => exception
ErrorMessage.add(exception, user_id: self.id)
end
end
end
Run Code Online (Sandbox Code Playgroud)
在user_spec.rb中
it "adds to error message if an exception is thrown" do
mock_user = User.new
mock_user.stub(:send_welcome_mail).and_raise(Exception)
ErrorMessage.should_receive(:add)
mock_user.welcome_user
end
Run Code Online (Sandbox Code Playgroud)
测试通过了,但是当我改变ErrorMessage.should_receive(:add)时ErrorMessage.should_not_receive(:add),它也通过了任何见解?
我正在使用黄瓜进行BDD,我将@wip标签用于我想要关注的某个场景.但是当我尝试运行"cucumber --wip"时,它会出现一个错误,上面写着"你不能同时使用--strict和--wip(RuntimeError)"有关如何调试它的任何建议吗?
PS:我使用的是黄瓜1.1.4,黄瓜栏"1.2.1",栏杆"3.1.0"
我试图在我的Ruby程序中使用Regex来转换"|" 将字符转换为换行符,例如:
# convert("title|subtitle") => "title \n subtitle"
Run Code Online (Sandbox Code Playgroud)
我正在尝试的正则表达式如下:
title_params =~ s/\|/\\n/
Run Code Online (Sandbox Code Playgroud)
但我不断收到错误,说"|" 不被承认.