问题标签 [rspec]
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.
rspec - 用于验证评论表单是否存在的规范中的随机“%2F”
我正在尝试为一个简单的应用程序的 posts/show.html.erb 视图编写规范,我将其放在一起学习 rspec。此刻我有点难以理解额外的“%2F”是从哪里来的。有任何想法吗?
我的规格...
带有额外 %2F 的规范输出...
model - 如何在 RSpec 测试中设置模型关联?
我已经将我为 posts/ show.html.erb视图编写的规范粘贴到我正在编写的应用程序中,作为学习 RSpec 的一种方式。我仍在学习模拟和存根。这个问题特定于“应该列出所有相关评论”规范。
我想要的是测试显示视图是否显示帖子的评论。但我不确定如何设置这个测试,然后让测试通过 should contain('xyz') 语句进行迭代。有什么提示吗?其他建议也很感激!谢谢。
- -编辑
更多信息。我有一个 named_scope 应用于我的视图中的评论(我知道,在这种情况下我做了一点倒退),所以@post.comments.approved_is(true)。粘贴的代码以错误“undefined method `approved_is' for #”响应,这是有道理的,因为我告诉它存根注释并返回注释。但是,我仍然不确定如何链接存根,以便 @post.comments.approved_is(true) 将返回一组评论。
file-upload - 在 merb 中测试经过身份验证的文件上传
这是过去几天让我发疯的事情。我有一个允许经过身份验证的用户将资产上传到站点的操作。我知道控制器操作是正确的,因为我可以手动运行该过程,但是我想使用 rspec 对其进行测试。
我必须使用request
帮助程序,以便我可以重用经过身份验证的会话,该会话是:given
用于这组测试的。
如果我在规范中设置断点,一切都很好,但是当我运行规范并尝试通过调试器访问控制器操作中的路径时,我得到了这个:
我的猜测是,stub!(:path)
没有为通过请求的任何模拟对象设置。
问题是:我是否正在使用正确的方法来测试文件上传,如果不是,还有什么方法?
ruby - 将“应该”与类方法一起使用?
我习惯拨打电话,例如:
关于变量,但是我怎样才能用类方法做类似的事情File.directory?(my_path)
呢?
File.should be_directory(my_path)
我尝试过的每一种组合都会导致一个方法丢失,因为 Ruby 试图在我当前的对象上找到“be_directory”,而不是将其与 File 匹配。
我知道我可以把它转过来写
但是当它失败时,它会给出一个非常糟糕的信息。
有任何想法吗?
ruby-on-rails - RSpec中的mock和mock_model有什么区别
我最近遇到了不同的教程,人们在其中同时使用mock
和mock_model
函数。
在控制器的 RSpec 教程中,他们使用该mock_model
功能,但在RSpec 的文档中,只有mock
功能,但没有mock_model
我尝试自己进行一些测试,但没有发现任何真正的区别,因为当我使用这两个功能中的任何一个时一切都很好,那么有什么区别吗?
ruby-on-rails - 带有 Cucumber Stories 的会话变量
我正在为一个有多个步骤的“注册”应用程序编写一些 Cucumber 故事。
与其编写一个 Huuuuuuuge 故事来一次涵盖所有步骤,那样会很糟糕,我宁愿像普通用户一样完成控制器中的每个操作。我的问题是我将在第一步中创建的帐户 ID 存储为会话变量,因此当访问第 2 步、第 3 步等时,会加载现有的注册数据。
我知道能够controller.session[..]
在 RSpec 规范内访问,但是当我尝试在 Cucumber 故事中执行此操作时,它会失败并出现以下错误(而且,我还在某处读过这是一种反模式等......):
使用 controller.session[:whatever] 或 session[:whatever]
使用会话(:随便)
所以,似乎加入会话存储是不可能的。我想知道的是是否有可能(我猜哪个是最好的..):
- 模拟会话存储等
- 在控制器中有一个方法并将其存根(例如
get_registration
,它分配一个实例变量......)
我浏览了 RSpec 书(好吧,略读)并浏览了 WebRat 等,但我还没有真正找到我的问题的答案......
再澄清一点,注册过程更像是一个状态机——例如,用户在注册完成之前要经过四个步骤——因此“登录”并不是一个真正的选择(它打破了网站工作方式的模型)...
在我的控制器规范中,我能够取消对基于会话变量加载模型的方法的调用 - 但我不确定“反模式”行是否也适用于存根和模拟?
谢谢!
ruby-on-rails - 如何以最小的数据库开销在 Rails 中测试关联扩展逻辑
我喜欢在任何地方使用模拟和存根来保持我的规范快速运行。我对如何在下面测试 find_special 方法感到困惑:
我不介意为此使用 :extend => 模块语法,但我认为这没有什么不同。
ajax - 如何使用 Merb 和 Webrat 测试 AJAX 请求?
我正在将merb与rspec和webrat一起使用。如何确保 rjs 模板成功渲染?由于ajax,我不能只写have_xpath。
ruby-on-rails - Rails:使用 ZenTest / autospec 测试新目录中的规范
我在我的 rails 应用程序中添加服务类目录:app/services
我想在目录中为这些类添加规范:spec/services
我在 spec/services 中添加了一个规范,但运行 autospec 不会运行该示例。
有没有办法配置 autospec 在新目录中运行示例?
谢谢。
ruby - 如何使用 RSpec 区分多行字符串?
我正在使用构建器生成一些 XML,并希望将结果与一些文件内容进行比较。但是,由于字符串很长,当字符串不同时,输出很难读取。
我知道 ruby 中有许多用于区分字符串的库,但是 rspec 中是否有内置工具可以生成更易于阅读的多行字符串比较失败?