问题标签 [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.
ruby-on-rails - assigns_to 不适用于 Ubuntu 上的 Rails 3 Shoulda
我正在使用带有 rspec 和 shoulda 的 Rails3。我有以下规格
这是我的宝石文件
这是我的 spec_helper
好的,到目前为止,一切都非常接近我以前看到的,但是每当我运行测试时,我都会收到如下错误
不,我的第一个想法是代码被破坏了,但是应用程序运行正确。此外,如果我测试是否使用 assigns[:site] 分配了值,则测试通过。
有谁知道我需要改变什么才能使这些测试重新开始工作。
提前致谢
安迪
ruby-on-rails - 应该:validates_each 出现未知错误
我很难理解我的验证方法有什么问题。
我安装了 shoulda,当我尝试使用它时,它会出现一个奇怪的未定义方法NoMethodError: undefined method '[]' for false:FalseClass
,这很奇怪。
我把它缩小到这段有问题的代码:
您可以在gist-596202中查看完整错误、违规模型(简化)、测试用例和环境信息
任何见解将不胜感激。
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 站点很容易,因此它存在于数据库中,但正如我之前所说,我想减少数据库的使用以帮助保持我的测试速度。
ruby-on-rails - 这两项测试如何通过?
我正在使用 Shoulda、Mocha 和 Test::Unit 进行测试。我有以下控制器和测试:
这两个测试怎么能通过?我在任何时候都没有明确地使我的模拟过期。Mohca 和 Shoulda 在这方面的互动很差吗?
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:
ruby-on-rails - 将自定义的 shoulda 匹配器添加到 TestCase
使用 shoulda 后,很明显 shoulda 不再使用宏(对于首选匹配器,它们都已弃用)例如:
不推荐使用以下内容:
但是,我能找到的所有文档都是通过将它们放在shoulda_macros
目录中来进行前宏设置的。我认为可以使用自定义匹配器来完成相同的任务,但应该找不到它们。
我正在使用的匹配器位于http://gist.github.com/613522
如何在我的 's中包含自定义匹配器?TestCase
ruby-on-rails-3 - 你可以使用 RSpec、Shouda、RCov 吗?
我正在尝试让 RCov 与我的 RSpec 和 Shoulda 测试一起工作,以测试 rails 3 应用程序。使用下面的 Rake 任务后,我的 RSpec 似乎可以正常工作,但是所有的 shoulda 测试都失败了,我似乎找不到任何关于让这些工作的文档。它们在自动测试(rspec 和 shoulda)下都运行良好。
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级)在 '
当我做一个通过测试时:
一切都按预期工作。有人可以告诉我我做错了什么还是这是一个框架问题。谢谢你。
ruby-on-rails - 使用 should_redirect_to 的“创建”功能测试失败
我在尝试使用 'should' 和 'factory_girl' 为 Rails 应用程序中的 'create' 创建功能测试时遇到问题。我创建了一个简单的项目,脚手架用户,在 test_helper.rb 中添加了“should”(我系统上的当前 gem 版本 2.11.3)和“factory_girl”。手动创建用户工作正常。以下是重现故障的步骤:
- 轨道项目
- 脚手架用户名:字符串
添加 test_helper.rb :
耙分贝:迁移
为用户编写以下功能测试(覆盖 users_controller_test.rb ):
/li>使用“rake test:functionals”运行测试显示失败:
预期的响应是重定向到 ,
<http://test.host/users/1001>
但重定向到<http://test.host/users>
.
我也玩过“should_redirect_to”,因为我看到“should_redirect_to”已被弃用,但没有运气。你有什么想法 ?
先感谢您,
玛丽安·瓦西里·卡莱曼。
ruby-on-rails - 应该破坏我的回溯吗?
我有一个或多或少这样的测试:
我特意加了一个
在路上的某个地方,我收到了这个错误:
当我应该得到一些东西时:
任何想法是什么在清理/破坏我的回溯?我的怀疑是应该是因为异常发生在设置内部或应该是它发生的时候。
这是一个 Rails 3 项目,以防万一。