2016-07-12 5 views
4

Der folgende CodeWas ist "Ambiguous regexp literal" in rubocop?

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

löst eine rubocop Ausgabe

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.

Kann jemand erklären, was das Problem ist und wie es zu lösen?

Antwort

5

Ein anderer Weg zu beheben Dies ist einfach Parens hinzufügen, wie Rubocop suggeriert. Ändern

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

zu

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

Es beschwert sich, dass an dieser Stelle:

match /#{MyGem.config.environment_name}/ 

unklar ist, ob Sie zwei Zahlen sind Dividieren oder eine RegExp wörtliche zu einem Methodenaufruf übergeben.

In diesem particulare Fall, da Sie für die Anwesenheit eines Teilstrings in einem String nur überprüft, wäre es besser, die RSpec #include Matcher zu verwenden, etwa so:

expect(foo).to include MyGem.config.environment_name 
Verwandte Themen