我在功能规范中有以下期望(相当低级但仍然必要):expect(Addressable::URI.parse(current_url).query_values).toinclude('some=>'value','some_other'=>String)请注意,第二个查询值是一个模糊匹配,因为我只想确保它存在,但我无法对其进行更具体的说明。我想将其提取到自定义匹配器中。我开始于:RSpec::Matchers.define:have_query_paramsdo|expected_params|matchdo|url|Addressable::URI.parse(url).query_
我有这样的rspec测试代码describe'Utils'doputs1111describe'#time_condition'doputs2221itdoputs'aaa'endputs2223endend我的launch.json是这样的{"name":"RSpec-all","type":"Ruby","request":"launch","cwd":"${workspaceRoot}","program":"${workspaceRoot}/spec/*_rspec.rb","args":["--pattern","*_rspec.rb"]},当我在vscode上运行测试时,我
我有一个非Railsruby应用程序,它使用记录器来处理输出到标准输出的日志。我想添加用于检查输出的规范,并找到了两种实现方法,但似乎两种方法都不起作用。所以这两种方式都在这个spec.rb文件中:require'rspec'require'logger'describe'Logger'doit'expecttooutput'doexpect{Logger.new(STDOUT).info('Hello')}.tooutput.to_stdoutendit'expecttorecieve'doexpect(Logger.new(STDOUT).info('Hello')).tore
我创建了一个运行良好的以下rspec模拟,但在执行它时收到警告。Using`stub`fromrspec-mocks'old`:should`syntaxwithoutexplicitlyenablingthesyntaxisdeprecated.Usethenew`:expect`syntaxorexplicitlyenable`:should`instead.calledfrom/file/path.rb:26:in`block(3levels)in'.这是我的单元测试。第26行是user_health_condition.stub(:user_condition_flag)do|
我想知道这是否在StackOverflow上有它的位置,但由于它与编程相关,我会把它扔掉。这是我的问题。我是TDD的新手,我喜欢Ruby,所以我走的明显路径是用rspec测试东西。为什么明显?我在不同的截屏视频中看到它,并认为它非常简洁。然后我在某处看到“autospec”,并尝试使用它。所以我安装了gem,使用sudogeminstallZenTest(根据说明here)接下来,我进入包含“digit.rb”和“digit_spec.rb”的文件夹,并在没有任何参数的情况下启动autospec。什么都没发生。值得注意的是,我的spec文件中有两个测试,我可以使用spec命令对其进行测
在测试或测试驱动开发方面,我是一个大菜鸟,所以我真的很难测试我的代码。最大的原因是这样的情况......我有一个模型,Photo,它有字段“place”、“city”、“state”和“country”。我创建了一个方法“location”,它可以接受一个参数,并将返回最小形式、缩写形式或完整形式的位置。这是模型代码:deflocation(form=:full)usa=country.eql?('US')||country.eql?('UnitedStates')country_name=Carmen::country_name(self.country)ifself.state.p
我将如何使用RSpec测试以下查找器?defself.find_by_mbid(mbid)super(mbid.downcase())end我认为唯一可行的方法是事先将其存储在数据库中,我希望避免这种情况,因为这是一个单元测试。我在这里看不到如何返回模拟,因为RSpec几乎无法访问super。有更好的方法吗?还是单元测试对于这类事情来说太低级了? 最佳答案 如果您愿意更改实现,您可以模拟它,但我建议使用数据库指定查找器。 关于ruby-RSpec:在不访问数据库的情况下测试AR查找器,我
我有一个对象的规范,它位于多个模块级别。像这样:describeFoo::Bar::Baz::Quux::Widgetdoit"should==anotherWidgetforthesameDoohickey"dodoohickey=stubFoo::Bar::Baz::Quux::Widget.new(doohickey).should==Foo::Bar::Baz::Quux::Widget.new(doohickey)endit"should!=anotherWidgetforadifferentDoohickey"doone_doohickey=stubanother_dooh
我正在尝试将rspec_api_documentation(https://github.com/zipmark/rspec_api_documentation)集成到我的sinatra应用程序中。我遇到了下面的错误。我显然已将错误简化为一个简单的测试,因为我认为一旦我弄清楚配置中的错误,一旦重新集成到我的更大的应用程序中它就会工作。谢谢!在app.rb中:require'rubygems'require'sinatra'get'/index'do"hewoah!"end在spec.rb中:require"rspec_api_documentation"require"rspec_ap
我正在编写一个gem,其中包含开发人员可以扩展的Sinatra应用程序。例如:#gemcode:require'sinatra'moduleMygemclassApplication我也开始使用RSpec。我应该如何配置RSpec来测试此功能? 最佳答案 上面的引用资料都是有用的,但主要是特定于rails的。我发现很难找到一个简单的方法来对模块化Sinatra应用程序进行基本测试,所以我希望这能为其他人解答这个问题。这是一个完全简单的、尽可能小的测试。这可能不是唯一的方法,但它适用于模块化应用程序:require'sinatra'c