问题标签 [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.

0 投票
7 回答
61631 浏览

ruby-on-rails - Rails 3.1,RSpec:测试模型验证

我已经开始了我在 Rails 中使用 TDD 的旅程,并且遇到了一个关于模型验证测试的小问题,我似乎无法找到解决方案。假设我有一个用户模型,

和一个简单的测试

这正确地测试了存在验证,但如果我想更具体怎么办?例如,在错误对象上测试 full_messages..

我对最初尝试(使用 should_not be_valid)的担忧是 RSpec 不会产生描述性错误消息。它只是说“预期有效?返回假,得到真”。但是,第二个测试示例有一个小缺点:它使用 create 方法而不是 new 方法来获取错误对象。

我希望我的测试更具体地说明他们正在测试什么,但同时不必接触数据库。

有人有意见吗?

0 投票
1 回答
2208 浏览

ruby-on-rails - validates_confirmation_of :密码不会被触发

我有一个非常基本的管理员模型:

根据手册 has_secure_password还添加了一个validates_confirmation_of :password. 如果我是正确的,如果和不匹配validates_confirmation_of应该总是出错- 即使是.:password:password_confirmation:password_confirmationnil

我正在使用 RSpec 进行测试,但该测试失败并告诉我这admin 有效的:

这个通过:

那么,我到底做错了什么?

0 投票
6 回答
7519 浏览

ruby-on-rails-3 - 如何使用 factory_girl 模拟和存根活动记录 before_create 回调

我有一个 ActiveRecord 模型 PricePackage。那有一个 before_create 回调。此回调使用第 3 方 API 进行远程连接。我正在使用工厂女孩,并希望删除此 api,以便在测试期间构建新工厂时不会进行远程调用。

我将 Rspec 用于模拟和存根。我遇到的问题是我的 factory.rb 中没有 Rspec 方法

模型:

工厂:

我不确定如何将 rspec 模拟和存根助手加载到我的 factory.rb 中,这可能不是处理此问题的最佳方法。

0 投票
2 回答
180 浏览

ruby-on-rails - 黄瓜是否需要查看规格

我认为黄瓜负责视图和流程。那么是否需要使用视图规范?

一点解释表示赞赏..谢谢

0 投票
1 回答
544 浏览

ruby-on-rails-3 - 现在在 Rails 3.1 中自动清除密码字段吗?

将应用程序(正在进行中)升级到 3.1 后,我不得不更改清除密码和密码确认字段的测试。我必须测试缺失值属性,而不是测试空值属性。

那很好,但是当我去关闭字段清除使测试失败时,它仍然通过,因为字段仍然被清除(仍然缺少值)。以前,如果用户创建失败,我在 create 下的相应控制器中有行来清除字段(因此重新显示表单时字段将为空)。现在看来不再需要了。

现在是密码和确认字段的默认行为吗?

0 投票
1 回答
13365 浏览

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] 没有被赋值),但第二个例子不是:

我不确定到底发生了什么。有没有办法可以测试返回给浏览器的实际响应代码?还是我可以测试授权的更好方法?

0 投票
3 回答
4482 浏览

ruby-on-rails - 如何将第一个 Cucumber 测试添加到 Rails 应用程序

忏悔:我从来没有为 Rails 写过一个测试。

我已经安装了 gems cucumber、rspec、capybara、factory girl。运行 Rails 3.1。

我不确定,嗯,在哪里创建一个新的测试文件或命名它。

谢谢你的耐心。

0 投票
3 回答
3729 浏览

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 中的操作?

0 投票
1 回答
1443 浏览

ruby-on-rails - 让 rSpec 检查是否能够创建对象?

我对 rspec 非常陌生,我正在尝试编写一个测试以确保创建的对象确实存在。这是我的测试现在的样子:

问题是,我在运行测试时得到了这个输出:

我希望此时连接被拒绝,但我怎样才能测试它而不是破坏测试呢?或者,我看到的是正确的输出吗?谢谢!

0 投票
4 回答
1404 浏览

ruby-on-rails - 普通项目上的 RSpec MustBeConfiguredBeforeExampleGroupsError

我正在建立一个 Rails 3.1 项目并喜欢使用 RSpec 正确测试它。

运行rails g rspec:install并进一步运行后rspec,控制台消息如下:

我的rspec/spec_helper.rb样子是这样的:

我认为它已经使用 config.mock_with 进行了配置?我很困惑,缺少什么?