【问题标题】:Why is RuboCop replacing the word "should" with the word "does"?为什么 RuboCop 用“做”这个词代替“应该”这个词?
【发布时间】:2021-04-29 20:33:56
【问题描述】:

我不确定是什么原因造成的,但我的代码中的“应该”一词已被替换为“确实”一词。我正在用 ruby​​ on rails 编写规范,并且正在尝试遵循 BDD 方法进行单元测试。他们的建议之一是将每个单元测试写成一个完整的句子,以“应该”这个词开头,所以我写了以下测试:

it 'should not return if there are no existing activities on the project' do
end

代码被替换为以下内容:

it 'does not return if there are no existing activities on the project' do
end

请注意,“应该”一词已被替换。这是 RuboCop 吗?如果是这样,我禁用了什么规则来防止这种情况发生?

如果不是 RuboCop,那会是什么?

【问题讨论】:

  • should_clean gem 听起来像是一个合理的嫌疑人。尽管 doc 字符串很糟糕,因为一切都返回了 - 即使它返回 nil。

标签: ruby-on-rails visual-studio-code rubocop


【解决方案1】:

这实际上是 Rubocop 通过RSpec/ExampleWording 为您做的事情。 Rubocop 有一个 Rspec Style 指南,你可以查看关于"Should" in Example Docstrings的部分

来自文档:

不要在示例开头写“应该”或“不应该” 文档字符串。描述代表实际功能,而不是什么 可能正在发生。使用现在时的第三人称。

因此禁用它实际上是一种不好的做法,您应该坚持使用文档并相应地编写您的文档字符串。

【讨论】:

    【解决方案2】:

    您可以禁用RSpec/ExampleWording

    【讨论】:

      猜你喜欢
      • 2013-09-22
      • 1970-01-01
      • 2018-02-14
      • 2013-10-10
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多