在rspec中比较字符串与正则表达式?

问题描述 投票:8回答:1

我在做

expect(@link.url_address == 'abc').to be_true

但是在abc之后url_address可能有其他文本,所以我正在尝试

expect(@link.url_address =~ 'abc').to be_true

但我得到了

Failure/Error: expect(@link.url_address =~ /abc/).to be_true
   expected  to respond to `true?`

我也试过了

expect(@link.url_address).to =~ /abc/

但我明白了

 Failure/Error: expect(@link.url_address).to =~ /abc/
 ArgumentError:
   The expect syntax does not support operator matchers, so you must pass a matcher to `#to`.
ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rspec
1个回答
18
投票

试试这个:

expect(@link.url_address).to match(/abc/)

资料来源:https://github.com/rspec/rspec-expectations#regular-expressions

© www.soinside.com 2019 - 2024. All rights reserved.