2016-07-12 2 views
4

Следующий кодЧто такое "Неоднозначное регулярное выражение" в rubocop?

expect(foo).to match /#{MyGem.config.environment_name}/ 

вызывает возникает проблема rubocop

Warning: Ambiguous regexp literal. Parenthesize the method arguments if it's surely a regexp literal, or add a whitespace to the right of the/if it should be a division.

Может кто-то объяснить, что проблема и как решить ее?

ответ

5

Другой способ исправить это просто добавить parens, как предлагает rubocop. Изменение

expect(foo).to match /#{MyGem.config.environment_name}/ 

в

expect(foo).to match(/#{MyGem.config.environment_name}/) 
2

Он жалуется, что на данный момент:

match /#{MyGem.config.environment_name}/ 

неясно, является ли вы деление двух чисел или пропусканием RegExp литерала вызова метода.

В этом particulare случае, так как вы просто проверка на наличие подстроки в строке, было бы лучше использовать RSpec #include Искателя, например, так:

expect(foo).to include MyGem.config.environment_name 
Смежные вопросы