Capybara/RSpec

Capybara/RSpec/HaveSelector

默认启用 安全 支持自动更正 添加版本 更改版本

待定

始终

2.19

-

使用 have_csshave_xpath 代替 have_selector

示例

# bad
expect(foo).to have_selector(:css, 'bar')

# good
expect(foo).to have_css('bar')

# bad
expect(foo).to have_selector(:xpath, 'bar')

# good
expect(foo).to have_xpath('bar')

DefaultSelector: css (默认)

# bad
expect(foo).to have_selector('bar')

# good
expect(foo).to have_css('bar')

DefaultSelector: xpath

# bad
expect(foo).to have_selector('bar')

# good
expect(foo).to have_xpath('bar')

可配置属性

名称 默认值 可配置值

DefaultSelector

css

字符串

Capybara/RSpec/PredicateMatcher

默认启用 安全 支持自动更正 添加版本 更改版本

待定

始终

2.19

-

建议使用谓词匹配器,而不是直接使用谓词方法。

Capybara 为谓词方法定义了魔法匹配器。此 cop 建议使用谓词匹配器,而不是直接使用谓词方法。

示例

Strict: true, EnforcedStyle: inflected (默认)

# bad
expect(foo.matches_css?(bar: 'baz')).to be_truthy
expect(foo.matches_selector?(bar: 'baz')).to be_truthy
expect(foo.matches_style?(bar: 'baz')).to be_truthy
expect(foo.matches_xpath?(bar: 'baz')).to be_truthy

# good
expect(foo).to match_css(bar: 'baz')
expect(foo).to match_selector(bar: 'baz')
expect(foo).to match_style(bar: 'baz')
expect(foo).to match_xpath(bar: 'baz')

# also good - It checks "true" strictly.
expect(foo.matches_style?(bar: 'baz')).to be(true)

Strict: false, EnforcedStyle: inflected

# bad
expect(foo.matches_style?(bar: 'baz')).to be_truthy
expect(foo.matches_style?(bar: 'baz')).to be(true)

# good
expect(foo).to match_style(bar: 'baz')

Strict: true, EnforcedStyle: explicit

# bad
expect(foo).to match_style(bar: 'baz')

# good - the above code is rewritten to it by this cop
expect(foo.matches_style?(bar: 'baz')).to be(true)

Strict: false, EnforcedStyle: explicit

# bad
expect(foo).to match_style(bar: 'baz')

# good - the above code is rewritten to it by this cop
expect(foo.matches_style?(bar: 'baz')).to be_truthy

可配置属性

名称 默认值 可配置值

Strict

true

布尔值

EnforcedStyle

inflected

inflected, explicit

AllowedExplicitMatchers

[]

数组