遇到的错误: 我在 features/step_definitions/xxx_step.rb 中对某个 grape api 进行了 put 请求:
@response = put "/api/v1/users/profile"
于是跑 cucumber 测试的时候会报 ruby 解释器的错误
......
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
经过 debug 发现是由于在 api 的 controller 中调用的 helper 方法里面存在含有 '!'的代码,类似于
# users.rb
put :profile do
....
do_some_thing
...
end
# helper.rb
def do_some_thing
if !user.verify_email?
....
end
# 或者
run_something!
end
在 helper 方法里面只要存在'!'就会报错,而转移到 controller 中则没有问题,请问这是我自身的问题,还是 cucumber 的 bug 呢?有没有人也遇到过?
环境版本