问题标签 [rspec3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rspec-rails - 从 rspec-rails 2.x 迁移到 3.x 后出现错误
在迁移之前,这些步骤已通过,但现在我收到错误:
我定义product_url
这样offering_id
的方式
ruby - 在 ruby 2.0、rspec 3.0 中无法从回溯中找到匹配行
在 Rails 4.0 的 Windows 上使用 rspec 3.0、ruby 2.0.0p195 运行功能规范时出现此错误。在谷歌上阅读,我发现修复是使用 rpsec 2.0 中的特定版本,但没有超过该版本。我以为我早就解决了这个问题。和其他人一样,我发现当我手动执行该功能的步骤时,一切都按预期工作。没有指示规范的哪一行失败。我应该在哪里查看 Google 以解决此问题?还是我在某个地方搞砸了?
gemfile.lock
在这里失败:_score_form.html.erb
note_feature_spec.rb
score_controller.rb 的相关部分
错误信息的顶部:
ruby-on-rails - 如何在 RSpec 中使用 Spree Route Helpers
我正在尝试在 Rspec 3.0 中使用 Spree 2.3 路由助手。在主应用程序中,我可以通过前缀访问它们spree.
,如下所示:
但是我似乎无法在 Rspec 中访问它们。
我找到了在 rails_helper 文件中包含帮助程序的参考,但这会引发错误
如何访问$ rake routes
我的测试中给出的狂欢路线?
ruby-on-rails - Capybara::ElementNotFound - Rspec
这一直让我发疯。请帮忙,我敢肯定这是一个简单的修复,即使它是一个愚蠢的树屋待办事项应用程序。(所以你们这些有经验的程序员在午休时请帮帮我,如果需要,我不会求助于这个)。
我正在尝试创建一个身份验证系统,但由于无法找到 css"#todo_list_1" 而失败
这就是我运行 BIN/RAKE 之后的全部内容
以下是我的失败清单:
失败:
这是我的 ./spec/support/todo_list_helpers.rb:4 的列表
这是我的 ./spec/views/todo_lists/index.html.erb_spec 的列表
需要'spec_helper'
这是我的 ./spec/views/todo_lists/index.html.erb_spec 的列表
需要'spec_helper'
***这是我的 app/views/todo_lists/index.html.erb
ruby-on-rails - RSpec 正在缓存我的源代码,我不想要它
如果我运行,我将 RSpec 与 RoR 4.1 一起使用
或者
如果是第一次执行,rspec 将正确加载文件,但在第二次执行时,它将加载缓存的文件。我可以确认产生的回溯是指我用评论交换的旧点。它指的是评论!
如何禁用此功能,恕我直言,它不应该是默认设置。
ruby-on-rails - 使用 RSpec 测试时,Rails 4 ActiveModel 不会 update_columns
在使用人和浏览器的正常测试中,一切都按预期工作。但是,当我使用 rspec 时,我可以看到我有:
但我不敢相信我的数据库记录实际上没有更新。以前我使用 .save,但实际上没有成功,它创建了 SAVEPOINT。
我遇到麻烦的代码基本上是一个 API 端点:
客户可以随时到达此位置,并且将跨越工作人员。当新记录已在数据库中但 is_processed 为 false 时,worker 将退出。因此,多次调用它是可以的,这也是检查工作是否完成的一种方法。
工作人员将等待客户输入验证码。所以,我们有像 WaitableLogin 这样的类,它基本上是:
因此,WaitableLogin 将检查 client_stuff 是否已更新。如果是,那么我们知道客户端已经提交了验证码(通过端点,工作人员将检查验证码是否为参数,如果有验证码字段,则更新数据库)。
然后将控制权转移回 Worker。您可以看到有很多代码在跨文件的许多代码部分使用缓存,缓存只是变量名,与它在 Rails 中的语义含义无关。
当我在浏览器上正常运行时,我看不到任何问题。事实上,即使我使用 .save,也没有 SAVEPOINT。我想,它在某处使用该 SAVEPOINT 创建了一些错误,所以我决定尝试使用 .update_columns。但是,再一次,没有成功。
这是测试之前的样子(:each) do System::Flights::Cached.delete_all end
所以我错过了什么,我累了。没有引发错误。当我在 update_columns 之后检查 .inspect 时,似乎所有内容都已更新。但是,当您在数据库中看到时,没有任何更新。
编辑:我放了 lock_version 以便我有乐观锁定(默认情况下,我认为)。结果,正如预期的那样,它被设置为 2。
编辑2:如果我在代码要求验证码时从rails控制台命令编辑,它会更新数据。所以,为什么运行 api 端点以提交验证码的 RSpec 规范不会更新该行。所有现实生活中没有原始规范的代码都被很好地执行。
ruby - 更改 rspec 的可组合匹配器的“得到”消息
我编写了一个名为 have_backtrace/error_with_backtrace 的可组合匹配器,如下所示:
然后我可以像这样使用它:
这工作正常,但是错误消息不是我想要的
我希望“得到”部分也说(error with backtrace ...)
有没有办法做到这一点?
ruby-on-rails - 如何在 Rspec 3 功能规范中存根 Rails 助手/模块方法?
我已经看到使用旧should_receive
语法完成此操作,但我无法弄清楚如何在 Rspec 3 中存根 Rails 模块方法。
我试过这些:
但实际上没有人存根该方法。
testing - 如何使用 RSpec 检查页面中有多少特定的 HTML 元素?
在 Rails 4 功能规范中,使用 RSpec 3 和 Capybara,我如何断言页面中是否存在一定数量的特定标签?
我试过了:
但它不起作用,说:
此外,在功能规范中测试视图中使用的标签和类的种类是一个好主意/坏做法吗?
ruby-on-rails - 如何使用 rspec 测试 assm 保护错误?
我有一个带有一些保护的状态机来防止特殊的状态转换。在我的规范中,我试图期待像这样的守卫违规错误:
结果,我在规范测试中收到了正确的错误:
失败/错误:expect(my_model.change_event).to raise_exception AASM::InvalidTransition:事件“change_event”无法从“current_state”转换
我想知道我应该如何更改我的规格以获得满意的测试?