问题标签 [shoulda]

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 投票
2 回答
1469 浏览

ruby-on-rails - assigns_to 不适用于 Ubuntu 上的 Rails 3 Shoulda

我正在使用带有 rspec 和 shoulda 的 Rails3。我有以下规格

这是我的宝石文件

这是我的 spec_helper

好的,到目前为止,一切都非常接近我以前看到的,但是每当我运行测试时,我都会收到如下错误

不,我的第一个想法是代码被破坏了,但是应用程序运行正确。此外,如果我测试是否使用 assigns[:site] 分配了值,则测试通过。

有谁知道我需要改变什么才能使这些测试重新开始工作。

提前致谢

安迪

0 投票
1 回答
396 浏览

ruby-on-rails - 应该:validates_each 出现未知错误

我很难理解我的验证方法有什么问题。

我安装了 shoulda,当我尝试使用它时,它会出现一个奇怪的未定义方法NoMethodError: undefined method '[]' for false:FalseClass,这很奇怪。

我把它缩小到这段有问题的代码:

您可以在gist-596202中查看完整错误、违规模型(简化)、测试用例和环境信息

任何见解将不胜感激。

0 投票
2 回答
3364 浏览

ruby-on-rails - 使用 Mocha 模拟/存根应用程序控制器方法(使用 Shoulda,Rails 3)

在为控制器编写功能测试时,我遇到了这样一个场景,我有一个 before_filter 从数据库中请求我的一个测试需要的一些信息。我正在使用 Factory_girl 生成测试数据,但我想避免在没有明确需要时访问数据库。我还想避免在这里测试我的 before_filter 方法(我计划在单独的测试中测试它)。据我了解,模拟/存根是实现此目的的方法。

我的问题是,在这种情况下模拟/存根此方法的最佳方法是什么。

我的前置过滤器方法根据在 URL 中找到的子域在数据库中查找站点,并设置要在控制器中使用的实例变量:

我的控制器使用此方法作为 before_filter:

如您所见,它依赖于@site要设置的变量(通过 before_filter)。然而,在测试期间,我想让测试假设@site已设置,并且它至少有 1 个关联页面(由 找到@site.pages)。我想load_site_from_subdomain稍后测试我的方法。

这是我的测试(使用Shouda & Mocha):

这让我的测试结果出现错误,告诉我那@site是零。

我觉得我正在以错误的方式解决这个问题。我知道只需 Factory.create 站点很容易,因此它存在于数据库中,但正如我之前所说,我想减少数据库的使用以帮助保持我的测试速度。

0 投票
1 回答
75 浏览

ruby-on-rails - 这两项测试如何通过?

我正在使用 Shoulda、Mocha 和 Test::Unit 进行测试。我有以下控制器和测试:

两个测试怎么能通过?我在任何时候都没有明确地使我的模拟过期。Mohca 和 Shoulda 在这方面的互动很差吗?

0 投票
2 回答
2488 浏览

ruby-on-rails - Rspec、shouda 和 spork 不能一起工作

当我运行rspec spec/models结果是好的。

但是当我使用spork时,应该使用宏的每个测试(就像it { should validate_presence_of(:title) }使用 FAILS 一样,错误如下:undefined method 'validate_presence_of' for ...

我用:

规范/spec_helper.rb:

0 投票
1 回答
645 浏览

ruby-on-rails - 将自定义的 shoulda 匹配器添加到 TestCase

使用 shoulda 后,很明显 shoulda 不再使用宏(对于首选匹配器,它们都已弃用)例如:

推荐使用以下内容:

但是,我能找到的所有文档都是通过将它们放在shoulda_macros目录中来进行前宏设置的。我认为可以使用自定义匹配器来完成相同的任务,但应该找不到它们。

我正在使用的匹配器位于http://gist.github.com/613522

如何在我的 's中包含自定义匹配器?TestCase

0 投票
1 回答
602 浏览

ruby-on-rails-3 - 你可以使用 RSpec、Shouda、RCov 吗?

我正在尝试让 RCov 与我的 RSpec 和 Shoulda 测试一起工作,以测试 rails 3 应用程序。使用下面的 Rake 任务后,我的 RSpec 似乎可以正常工作,但是所有的 shoulda 测试都失败了,我似乎找不到任何关于让这些工作的文档。它们在自动测试(rspec 和 shoulda)下都运行良好。

0 投票
2 回答
6967 浏览

ruby - 应该 validate_format_of 。not_with 在框架中有问题(或在我的理解中)

我将以下代码放入 RSpec 测试中:

并设置实际类:

当我运行测试时,我得到:

失败:1)用户失败/错误:它 { should validate_format_of(:email).not_with('test@test')} 当电子邮件设置为“test@test”时,预期的错误包括“不能为空”,得到错误:[“名称不能为空(nil)”,“电子邮件无效(\“test@test\”)”]#./spec/models/user_spec.rb:8:在`block(2级)在 '

当我做一个通过测试时:

一切都按预期工作。有人可以告诉我我做错了什么还是这是一个框架问题。谢谢你。

0 投票
1 回答
460 浏览

ruby-on-rails - 使用 should_redirect_to 的“创建”功能测试失败

我在尝试使用 'should' 和 'factory_girl' 为 Rails 应用程序中的 'create' 创建功能测试时遇到问题。我创建了一个简单的项目,脚手架用户,在 test_helper.rb 中添加了“should”(我系统上的当前 gem 版本 2.11.3)和“factory_girl”。手动创建用户工作正常。以下是重现故障的步骤:

  1. 轨道项目
  2. 脚手架用户名:字符串
  3. 添加 test_helper.rb :

  4. 耙分贝:迁移

  5. 为用户编写以下功能测试(覆盖 users_controller_test.rb ):

    /li>
  6. 使用“rake test:functionals”运行测试显示失败:

预期的响应是重定向到 ,<http://test.host/users/1001>但重定向到<http://test.host/users>.

我也玩过“should_redirect_to”,因为我看到“should_redirect_to”已被弃用,但没有运气。你有什么想法 ?

先感谢您,

玛丽安·瓦西里·卡莱曼。

0 投票
3 回答
504 浏览

ruby-on-rails - 应该破坏我的回溯吗?

我有一个或多或少这样的测试:

我特意加了一个

在路上的某个地方,我收到了这个错误:

当我应该得到一些东西时:

任何想法是什么在清理/破坏我的回溯?我的怀疑是应该是因为异常发生在设置内部或应该是它发生的时候。

这是一个 Rails 3 项目,以防万一。