草庐IT

Controller测试

全部标签

ruby-on-rails - 不要在 Rails 生成 Controller 上创建 View 文件夹

当您运行railsgeneratecontroller时,是否有一种方法可以使用通常的生成器配置来关闭View文件夹和操作模板的创建?我在任何地方都找不到选项和代码here没有给我任何指示。无论如何,我们可能会在某个时候为我们的API构建我们自己的Controller/资源生成器,但我很好奇是否有办法同时消除这种烦恼。 最佳答案 这不是一个有据可查的功能,但请尝试在命令中添加--skip-template-engine(别名--no-template-engine)选项。railsgeneratecontrollerfoobar--

ruby-on-rails - 如何测试某个函数是否使用 Rails 和 rspec 2 中的事务

我有一个模型函数,我想确保它使用事务。例如:classModeldefmethodModel.transactiondo#dostuffendendend我目前的方法是在block内存入一个方法调用以引发ActiveRecord::Rollback异常,然后检查数据库是否真的发生了变化。但这意味着如果由于某种原因block内的实现发生变化,那么测试就会中断。你会如何测试这个? 最佳答案 你应该换个角度看问题。从行为的角度来看,测试函数是否使用事务是没有用的。它不会为您提供有关函数是否按预期运行的任何信息。您应该测试的是行为,即预期结

ruby - 如何忽略或跳过使用 RSpec 的测试方法?

请指导如何使用RSpec禁用以下测试方法之一。我正在使用SelenuimWebDriver+RSpec组合来运行测试。require'rspec'require'selenium-webdriver'describe'AutomationSystem'dobefore(:each)do###endafter(:each)do@driver.quitendit'Test01'do#positivetestcaseendit'Test02'do#negativetestcaseendend 最佳答案 您可以使用pending()或将it

ruby-on-rails - rails : How to determine controller/action in view

这是我的部分表格:{:multipart=>true}do|d|%>'Uploadlogo',:required=>false%>'Image,:required=>false',:style=>'margin-bottom:2px'%>'BilledURL',:required=>false%>如果操作是编辑,我想改为显示:{:multipart=>true}do|d|%>'Uploadlogo',:required=>false%>'Image,:required=>false',:style=>'margin-bottom:2px'%>'BilledURL',:required=

ruby - 反对在 RSpec 测试中使用 before、let 和 subject 的理由是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我刚开始编写RSpec测试,我遇到了thoughtbot'sStyleGuide,它反对let、let!、before和subject(以及其他)。我也在其他几个地方读过类似的建议(包括关于before(:all)的旧RSpecdocs警告),但我似乎找不到反对的实际论据他们。那么问题是:为什么我不应该在我的测试中使用这些方法?什么是更好的方法?

ruby-on-rails - 使用 RSpec 和模拟测试 after_commit

我有一个模型Lead和一个回调:after_commit:create,:send_to_SPL我正在使用Rails-4.1.0、ruby-2.1.1、RSpec。1)此规范未通过:context'callbacks'doit'shallcall\'send_to_SPL\'aftercreate'doexpect(lead).toreceive(:send_to_SPL)lead=Lead.create(init_hash)plead.new_record?#=>falseendend2)这个规范也没有通过:context'callbacks'doit'shallcall\'send

ruby-on-rails - 分析 Rails Controller 操作

在RubyonRails中分析Controller操作的最佳方法是什么。目前,我正在使用蛮力方法,在我认为会成为瓶颈的部分之间插入putsTime.now调用。但这感觉真的非常脏。一定有更好的方法。 最佳答案 我不久前学习了这项技术,发现它非常方便。当它就位时,您可以将?profile=true添加到任何访问Controller的URL。您的操作将照常运行,但它不会将呈现的页面传送到浏览器,而是发送一个详细的、格式良好的ruby​​-prof页面,显示您的操作花费时间的地方。首先,将ruby​​-prof添加到你的Gemfile中,

ruby-on-rails - 使用 FactoryGirl 测试简单的 STI

我有一个类,它是其他一些专门针对行为的类的基础:classTaskCounterTask类继承自TaskclassCounterTask在我尝试测试基类之前一切正常,因为它必须有一个类型。FactoryGirl.definedofactory:taskdosequence(:name){|n|"name_#{n}"}sequence(:command){|n|"command_#{n}"}endend您将如何测试父类(superclass)的基本功能? 最佳答案 您可以声明工厂的定义如下:FactoryGirl.definedofa

ruby - 使用 RSpec 测试 ActionMailer 多部分电子邮件(文本和 html 版本)

我目前正在使用RSpec测试我的邮件程序,但我已经开始按照Rails指南中的说明设置多部分电子邮件:http://guides.rubyonrails.org/action_mailer_basics.html#sending-multipart-emails我有文本和html格式的邮件程序模板,但看起来我的测试只检查HTML部分。有没有办法单独检查文本模板?它是否只检查HTMLView,因为它在默认顺序中是第一个? 最佳答案 为了补充nilmethod的出色答案,您可以通过使用共享示例组测试文本和html版本来清理规范:spec_

ruby-on-rails - 为什么 Ruby open-uri open 在我的单元测试中返回一个 StringIO,而在我的 Controller 中返回一个 FileIO?

我继承了一个Rails2.2.2应用程序,它在AmazonS3上存储用户上传的图像。基于attachment_fu的Photo模型提供了一个rotate方法,该方法使用open-uri从S3和MiniMagick中检索图像以执行旋转。rotate方法包含这一行来检索用于MiniMagick的图像:temp_image=MiniMagick::Image.from_file(open(self.public_filename).path)self.public_filename返回类似的内容http://s3.amazonaws.com/bucketname/photos/98/phot