问题标签 [rspec-rails]
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.
ruby-on-rails - Rails 3.1,RSpec:测试模型验证
我已经开始了我在 Rails 中使用 TDD 的旅程,并且遇到了一个关于模型验证测试的小问题,我似乎无法找到解决方案。假设我有一个用户模型,
和一个简单的测试
这正确地测试了存在验证,但如果我想更具体怎么办?例如,在错误对象上测试 full_messages..
我对最初尝试(使用 should_not be_valid)的担忧是 RSpec 不会产生描述性错误消息。它只是说“预期有效?返回假,得到真”。但是,第二个测试示例有一个小缺点:它使用 create 方法而不是 new 方法来获取错误对象。
我希望我的测试更具体地说明他们正在测试什么,但同时不必接触数据库。
有人有意见吗?
ruby-on-rails - validates_confirmation_of :密码不会被触发
我有一个非常基本的管理员模型:
根据手册 has_secure_password
还添加了一个validates_confirmation_of :password
. 如果我是正确的,如果和不匹配validates_confirmation_of
应该总是出错- 即使是.:password
:password_confirmation
:password_confirmation
nil
我正在使用 RSpec 进行测试,但该测试失败并告诉我这admin
是有效的:
这个通过:
那么,我到底做错了什么?
ruby-on-rails-3 - 如何使用 factory_girl 模拟和存根活动记录 before_create 回调
我有一个 ActiveRecord 模型 PricePackage。那有一个 before_create 回调。此回调使用第 3 方 API 进行远程连接。我正在使用工厂女孩,并希望删除此 api,以便在测试期间构建新工厂时不会进行远程调用。
我将 Rspec 用于模拟和存根。我遇到的问题是我的 factory.rb 中没有 Rspec 方法
模型:
工厂:
我不确定如何将 rspec 模拟和存根助手加载到我的 factory.rb 中,这可能不是处理此问题的最佳方法。
ruby-on-rails - 黄瓜是否需要查看规格
我认为黄瓜负责视图和流程。那么是否需要使用视图规范?
一点解释表示赞赏..谢谢
ruby-on-rails-3 - 现在在 Rails 3.1 中自动清除密码字段吗?
将应用程序(正在进行中)升级到 3.1 后,我不得不更改清除密码和密码确认字段的测试。我必须测试缺失值属性,而不是测试空值属性。
那很好,但是当我去关闭字段清除使测试失败时,它仍然通过,因为字段仍然被清除(仍然缺少值)。以前,如果用户创建失败,我在 create 下的相应控制器中有行来清除字段(因此重新显示表单时字段将为空)。现在看来不再需要了。
现在是密码和确认字段的默认行为吗?
rspec - 如何使用 RSpec 测试 CanCan 授权失败的响应代码?
我正在开发一个使用 CanCan 授权我的资源的 Rails 项目。当用户未登录并尝试提交“谈话”(通过 ajax 表单提交)时,CanCan 正确地引发 401{"status":"error","message":"You must be logged in to do that!"}
作为响应(我已使用 firebug 在浏览器中验证了这一点)。但是,在我的测试中得到 302 响应代码而不是 401:
talk_controller_spec.rb:
这里包含的第一个例子是成功的(assigns[:talk] 没有被赋值),但第二个例子不是:
我不确定到底发生了什么。有没有办法可以测试返回给浏览器的实际响应代码?还是我可以测试授权的更好方法?
ruby-on-rails - 如何将第一个 Cucumber 测试添加到 Rails 应用程序
忏悔:我从来没有为 Rails 写过一个测试。
我已经安装了 gems cucumber、rspec、capybara、factory girl。运行 Rails 3.1。
我不确定,嗯,在哪里创建一个新的测试文件或命名它。
谢谢你的耐心。
file-upload - 在 Rails 3.1 控制器测试中模拟文件上传
我的控制器访问tempfile
上传文件的属性并将其传递给另一个模拟组件。我的测试代码有
和控制器代码调用params[:file].tempfile.path
。
从 Rails 3.0 升级到 3.1 后,上述行开始失败
也就是说,Rails 3.1params[:file]
自动转换为字符串。
通过浏览器手动测试时,代码可以正常工作。我尝试使用fixture_file_upload
,参数变成了一个File
对象,但它没有tempfile
方法。
那么如何将任意模拟对象作为参数传递给 Rails 3.1 中的操作?
ruby-on-rails - 让 rSpec 检查是否能够创建对象?
我对 rspec 非常陌生,我正在尝试编写一个测试以确保创建的对象确实存在。这是我的测试现在的样子:
问题是,我在运行测试时得到了这个输出:
我希望此时连接被拒绝,但我怎样才能测试它而不是破坏测试呢?或者,我看到的是正确的输出吗?谢谢!
ruby-on-rails - 普通项目上的 RSpec MustBeConfiguredBeforeExampleGroupsError
我正在建立一个 Rails 3.1 项目并喜欢使用 RSpec 正确测试它。
运行rails g rspec:install
并进一步运行后rspec
,控制台消息如下:
我的rspec/spec_helper.rb
样子是这样的:
我认为它已经使用 config.mock_with 进行了配置?我很困惑,缺少什么?