为啥 Rspec 找不到 select2 方法?

Posted

技术标签:

【中文标题】为啥 Rspec 找不到 select2 方法?【英文标题】:Why Rspec cannot find the select2 method?为什么 Rspec 找不到 select2 方法? 【发布时间】:2021-11-08 23:21:36 【问题描述】:

我刚刚加入了一家新公司,当我在 Rspec 中使用 select2 方法时,我收到以下错误:NoMethodError:undefined method `select2' for...

我们使用'capybara-select-2' gem。

所以我在 spec_helper.rb 中添加了以下配置:config.include CapybaraSelect2,它非常有效。问题,当测试被推送到heroku上时,它会引发一个错误:uninitialized constant CapybaraSelect2

奇怪的是我的同事使用这种方法不需要添加配置行...

你知道为什么没有它他可以使用它而我不能吗?感谢您的帮助。

【问题讨论】:

【参考方案1】:

您的同事可能在某个时候将gem install capybara-select-2 全局安装到他的环境中,而您通过捆绑程序使用它。您应该确保它已包含在您的 gemfile 中的 :test 组中。

话虽如此,我不建议再使用该 gem,它已经多年没有更新了。

【讨论】:

感谢您的回答,托马斯!我们检查了,我们有相同版本的gem 'capybara-select-2',它存在于我们的 gemfile 中的:test 中。与您的第二点相关,实际上有两个不同的 gem,其中一个最近(大约一年)更新了,它是由 @Hirurg103 构建的。如果您有其他想法可能会出现此问题,我会全力以赴:)【参考方案2】:

我的 CTO 终于找到了让我的代码正常工作的方法:

我在spec_helper.rb 的末尾调用了config.include CapybaraSelect2,所以他把它移到rails_helper.rb 中,如下所示:

config.include Devise::Test::IntegrationHelpers
config.include ActiveSupport::Testing::TimeHelpers
config.include ::Passwordless::TestHelpers::SystemTestCase
config.include CapybaraSelect2

现在一切正常!

【讨论】:

以上是关于为啥 Rspec 找不到 select2 方法?的主要内容,如果未能解决你的问题,请参考以下文章

在 Jenkins 上运行时找不到 gem rspec-core (>= 0.a) (Gem::GemNotFoundException)

为啥 jQuery 或 getElementById 等 DOM 方法找不到元素?

为啥 jQuery 或 getElementById 等 DOM 方法找不到元素?

为啥 jQuery 或 getElementById 等 DOM 方法找不到元素?

为啥 jQuery 或 getElementById 等 DOM 方法找不到元素?

为啥 jQuery 或 getElementById 等 DOM 方法找不到元素?