问题标签 [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 - Rspec / Authlogic / Capybara - 不正确的重定向
我是测试新手,我正在尝试在links_spec.rb
.
首先,该@user = Factory.build(...)
行抛出一个错误,因为它说用户是重复的——我不知道用户是在哪里创建的,因为公司和用户没有适当的多态关系(这是另一个故事),而 Company.rb 没有创建时自动创建用户。
所以,当我删除那条线时,一切似乎都很好,除非它到达这response.should redirect...
条线。而不是重定向到links_path
,测试失败并告诉我:
我不明白为什么会发生这种情况或如何解决它。
ruby-on-rails-3 - rspec render_views 忽略布局?想测试静态缓存页面不显示flash消息
我正在尝试测试通过rails生成的“静态”页面(它们是ERB,但被缓存),不会呈现身份验证系统(Devise)或其他任何地方留下的任何杂散闪光通知。
我试过写这个控制器规范,但似乎 response.body 只呈现模板,而不是它的布局?
我已经尝试更改为渲染 Flash 通知的布局,甚至将文本插入到布局模板中,但不能使规范失败。
有没有办法让 rspec 也用适当的布局渲染模板?
控制器规范是尝试执行此操作的错误方法吗?它似乎不合适,因为它更多地与正在使用的布局及其内容有关,但渲染过程从控制器开始,它接收结果,我可以在渲染之前操纵闪存哈希内容。
版本:rails (3.0.10)、rspec-rails (2.6.1)、rspec-core (2.6.4)
谢谢,尼克
ruby-on-rails - 自动测试不适用于 rspec 共享示例
我的测试如下所示:
我可以rspec spec
成功运行。但autotest
失败:
这是因为生成的 rspec 命令行autotest
包括user_shared.rb
:
当我'/path/to/project/spec/models/user_shared.rb'
从命令行中删除并手动执行它时,它可以工作。
现在,如果我将我的更改user_shared.rb
为:
它也适用于由 生成的命令行autotest
。但这是一个丑陋的解决方法。
既然rspec
只知道“*_spec”文件是睾丸,怎么能autotest
这样配置呢?
在我的 Gemfile 中,我有以下内容(与测试相关):
ruby-on-rails - Rails 验证排除与路线
如果用户名等于第一个路由块之一,我想测试用户是否无效。我现在以这种方式在 rspec 中指定它:
问题是,这会减慢我的规格,如果排除每个第一个路线元素,是否有更好的方法来指定?
ruby-on-rails - 使用 rspec 测试文件上传 - rails
我想在 Rails 中测试文件上传,但不知道该怎么做。
这是控制器代码:
我已经尝试过这个规范,但它不起作用:
如何使用 rspec 模拟文件上传?
ruby-on-rails-3 - Testing after_create hooks with rspec
I have code in my model (RoR 3.0.x) that is more or less like this:
And I'm using the latest rspec gem to test it. The problem is that I'm not able to test the notify method: if I test it directly I can't because it's protected, if I create a message and set expectations it doesn't work because apparently even though rspec runs the notify metod I'm not able to catch the calls in time.
My spec is:
The object Notifier never receives message_from_portfolio. What am I doing wrong? Suggestions?
ruby - Errno::ENOENT:运行 rspec 测试时出错,说文件不存在,但确实存在
所以我正在尝试测试控制器,但遇到了问题。部分代码需要加载文件,但我收到此错误:
但是,该文件确实退出。当我在浏览器中运行它时,它工作得很好,没有问题(但我仍然想写一个测试)。
我不知道这是否与它有关,但是我在运行测试时使用了数据库。我知道这实际上不是我应该这样做的,但我不知道其他任何方式。
任何帮助都是极好的。谢谢。
ruby-on-rails - 如何使用 rspec 在路由规范中指定 https 协议?
在我的路线文件中,我有:
我正在尝试为这条路线添加一个规范,如下所示:
但是,规范仍然失败。如果我删除:protocol => 'https'
,规范也会失败:
ruby-on-rails-3 - 子域,使用 cucumber 或 capybara 和 rspec 进行测试
我项目的部分开发已经完成。我们公司要求我为开发的代码以及以后的开发编写黄瓜测试用例。路由文件有 admin 和 hosts.Devise 两个子域。
现在我安装了黄瓜并为第一个故事编写了第一个场景,当非注册用户登陆主页时,输入有效的电子邮件并被重定向到下一页......该页面没有密码字段。
问题出在我的路线文件中,我有,
现在我如何指定 path.rb 文件以在该特定子域中查找 root_path。没有在子域约束之外写入 root_path。这是我第一次进行测试。我真的坚持这一点。非常感谢任何帮助。
我刚刚从某人那里知道这可以使用 capybara 来实现。如果是这样,请你给一些想法。
ruby-on-rails - rSpec ==/eql 无法比较“相同”的东西
我有一个控制器索引测试,它获得了一个 ActiveRecord 范围。测试目前看起来像这样(包括一些内联调试的东西):
输出是这样的:
这绝对不是我在最近版本的 Rails 和 rSpec 中第一次遇到这种情况。以前,同事只会将物品包装在 ato_a
中进行比较,我觉得这有点脏,可能不是一个好的解决方案。
有任何想法吗?我很好奇为什么它认为它们不同,以及相同的测试如何在旧版本的 Rails 和/或 rSpec 中通过。