小编Mar*_*hen的帖子

for_receive和should_not_receive的RSpec都为Exception传递

我有一个非常奇怪的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),它也通过了任何见解?

rspec ruby-on-rails

9
推荐指数
2
解决办法
4293
查看次数

你不能同时使用--strict和--wip(RuntimeError)

我正在使用黄瓜进行BDD,我将@wip标签用于我想要关注的某个场景.但是当我尝试运行"cucumber --wip"时,它会出现一个错误,上面写着"你不能同时使用--strict和--wip(RuntimeError)"有关如何调试它的任何建议吗?

PS:我使用的是黄瓜1.1.4,黄瓜栏"1.2.1",栏杆"3.1.0"

cucumber ruby-on-rails-3.1

3
推荐指数
1
解决办法
610
查看次数

替换管道符"|" 换行?

我试图在我的Ruby程序中使用Regex来转换"|" 将字符转换为换行符,例如:

# convert("title|subtitle") => "title \n subtitle"
Run Code Online (Sandbox Code Playgroud)

我正在尝试的正则表达式如下:

title_params =~ s/\|/\\n/
Run Code Online (Sandbox Code Playgroud)

但我不断收到错误,说"|" 不被承认.

ruby regex

1
推荐指数
1
解决办法
822
查看次数

标签 统计

cucumber ×1

regex ×1

rspec ×1

ruby ×1

ruby-on-rails ×1

ruby-on-rails-3.1 ×1