Tag: 测试

使用RSpec和Ruby on Rails的国际字符

我刚刚开始使用RSpec,我在RSpec github repo上复制了非常简单的测试,以确保事情按预期工作: require ‘spec_helper’ describe ‘Home Page’ do it “Welcomes the user” do visit ‘/products’ page.should have_content(“Welcome”) end end 当我将字符串更改为“Olá”或“Caçamba”之类的问题时,问题就开始了。 任何具有特殊字符的字符串。 当我这样做时,我收到以下错误: invalid multibyte char (US-ASCII) (SyntaxError) invalid multibyte char (US-ASCII) syntax error, unexpected $end, expecting ‘)’ page.should have_content(“Olá”) 关于如何修复它的任何想法? 也许一些配置选项? 非常感谢

如何使用Rspec在Sinatra中测试助手块?

我正在编写一个sinatra应用程序并使用rspec和rack / test进行测试(如sinatrarb.com所述)。 到目前为止,它一直很棒,直到我将一些相当程序性的代码从我的域对象移动到sinatra助手。 从那时起,我一直在试图弄清楚如何孤立地测试这些?

从before(:each)块中获取完整的RSpec测试名称

RSpec允许您通过执行以下操作获取before(:each)块中当前运行的测试方法名称: Spec::Runner.configure do |config| config.before :each do |x| x.method_name # returns ‘should be cool’ end end 这是一个测试,如: require File.expand_path(File.dirname(__FILE__) + ‘/../spec_helper’) describe ‘Hello world’ do it ‘should be cool’ do # test code end end 是否有可能在前面的块中获得整个测试名称(也称为“Hello World应该很酷”)?

使用VCR过滤敏感数据

我正在使用VCR gem记录http交互,并在将来重播它们。 我想在uri请求中过滤掉我的实际密码值。 这是uri的样子: http://services.somesite.com/Services.asmx/Cabins Username=long&Password=john&StartDate=03%2F22%2F2012&EndDate=03%2F29%2F2012 虽然这里提供了一个解释,但我仍然不确定自己经过几次尝试后该怎么做: https://www.relishapp.com/myronmarston/vcr/v/2-0-0/docs/configuration/filter-sensitive-data 任何帮助,将不胜感激。

黄瓜是否不需要编写unit testing?

我对Ruby / ROR可用的大量测试框架感到有些困惑。 我最近观看了Cucumber Railscasts并发现它们非常有趣。 所以我开始玩游戏然后很难在概念上看到我会在哪里进行各种测试。 似乎很有可能在Cucumber中进行unit testing中可以完成的所有事情,所以我是否需要编写unit testing,或者我应该编写我的function定义并专注于提供尽可能好的覆盖范围,因为我可以使用它。 我应该使用Rspec或Test:Unit创建我的unit testing吗? 当我测试Ajaxfunction时,我应该使用Selenium还是Watir? 这里似乎有很多选择,我很难看到使用哪些工具以及边界在哪里。 什么是其他人的黄瓜经验以及在写黄瓜整合测试和测试之间的界限:基于单元和/或基于Rspec的单元和function测试。 有没有人意识到关于这个主题的好文章,建议在测试方法和各种工具的优点和缺点之间划清界限。 我理解其中一些是主观的,但是如何攻击这个问题的常用方法将受到欢迎。

如何断言Rails集成测试中没有路由匹配?

我有一个Rails 3集成测试,测试我的路线。 它包含以下测试: assert_routing( “/#{@category.url.path}/#{@foo.url.path}”, { :controller => ‘foo’, :action => ‘show’, :category => @category.to_param, :foo => @foo.to_param } ) 我还想测试一个没有路由匹配的情况。 显然,测试生成在这种情况下没有意义,所以我只需要assert_recognizes的反转。 我希望能够做到这样的事情: assert_not_recognized(‘/adfhkljkdhasjklhjkldfahsjkhdf’) 任何想法,缺少在assert_raises块中包装assert_recognize(实际上并不是那么可怕,现在我想到了它)?

Ruby on Rails – 为什么要使用测试?

我对Ruby on Rails中各种测试设备的用途感到困惑。 我已经使用该框架大约6个月,但我从来没有理解它的测试部分。 我使用的唯一测试是Java中的JUnit3,而且只是简单的。 我读过的所有内容都只显示了测试validation。 轨道中的validation不应该起作用吗? 看起来更像测试框架而不是测试代码。 为什么需要测试validation? 此外,对于代码中的任何更改,测试似乎都非常脆弱。 因此,如果您更改模型中的任何内容,则必须更改测试和灯具以匹配。 这不违反DRY原则吗? 第三,编写测试代码似乎需要很多时间。 这是正常的吗? 刷新我的浏览器并查看它是否有效会不会更快? 我已经不得不玩我的应用程序只是为了看它是否正确流动并确保我的CSS没有爆炸。 为什么手动测试不够? 我之前已经问过这些问题而且我没有得到“自动化测试自动化”。 我足够聪明,可以找出自动化任务的优势。 我的问题是,与好处相比,编写测试的成本似乎非常高。 也就是说,任何详细的回复都是受欢迎的,因为我可能错过了一两个好处。

“autotest / rails 不存在。 中止”

我发现自动测试已停止工作…… $ autotest loading autotest/rails Autotest style autotest/rails doesn’t seem to exist. Aborting. 根据这篇博文 ,这个错误的常见原因是人们没有安装autotest-rails gem。 但是,我确实安装了: autotest-rails (4.1.0) ZenTest (4.1.4, 4.1.3, 4.1.1, 4.0.0, 3.11.1, 3.11.0, 3.10.0, 3.9.3, 3.9.2) 我今天或昨天没有安装任何新gem,尽管我昨天可能已经完成了gem update 。 我看到的另一个问题是与Ruby 1.9不兼容,但我使用的是MRI Ruby 1.8.6。

ruby的C1或C2覆盖工具

Ruby(1.9)有C1或C2代码覆盖的工具吗? SimpleCov仅支持C0 ,但也许还有另一种工具。 我知道这里有一个类似的问题 ,但是几年前,我希望有些事情发生了变化。

Rails – 使用function测试测试JSON API

我只有一个简单的问题,但我找不到任何答案。 我的ruby on rails 3.2.2 appilcation有一个带有设计会话认证的JSON API。 我的问题是: 我如何通过function测试或集成测试来测试这个API – 有没有办法处理会话? 我没有前端,只有我可以做的API GET。 POST。 放。 并使用JSON Body进行删除。 哪种测试方法是自动化的最佳方法? 示例创建新用户 发布www.exmaple.com/users { “user”:{ “email” : “test@example.com”, “password ” : “mypass” } }