Questions tagged «rspec2»

4
设置RSpec来测试gem(不是Rails)
使用添加的rspec-rails生成器可以很容易地设置RSpec来测试Rails应用程序。但是如何添加RSpec来测试开发中的gem?我没有使用珠宝商或类似工具。我只是使用Bundler(bundle gem my_gem)来设置新gem的结构,并手动编辑* .gemspec。我还添加s.add_development_dependency "rspec", ">= 2.0.0"了gemspec并做了一个bundle install。 是否有一些不错的教程,接下来如何使RSpec工作?
154 testing  rubygems  rspec  gem  rspec2 



6
如何获得rspec-2给出与测试失败相关的完整跟踪?
现在,如果我使用我的测试套件运行,rake spec则会出现错误: 1)SegmentsController GET'索引'应该工作 失败/错误:获取“索引” #的未定义方法`locale' #./spec/controllers/segments_controller_spec.rb:14: 在'的块(3个级别)中 这是正常现象,因为我确实有错误:) 问题在于该跟踪不是很有帮助。我知道它闯入了segments_controller_spec.rb第14行,但这就是我称之为测试的地方: ### segments_controller_spec.rb:14 get 'index' 我希望有实际的换行和完整的跟踪,而不是spec文件夹中的部分。 运行--trace无济于事。

6
如何在不运行rake spec的情况下为Rails rspec测试准备测试数据库?
经过大量的故障排除后,我发现我需要先运行rake spec一次(可以使用control-c中止),然后才能直接运行rspec(例如,在我们的部分规格上)。我们正在运行Rails 3.0.7和RSpec 2.5.0。 显然,rake正在运行一些重要的数据库设置任务/代码(我们在根级别Rails Rakefile和其他地方可能有自定义代码)。 如何在不运行的情况下运行rake测试数据库设置任务/代码rake spec? 除了能够在一个文件子集上运行rspec之外,我还使用specjour将我们的规范分布在多个内核上(尚未成功在整个LAN上传播它们),但是我看到的行为与运行rspec相同直接:我需要rake spec在specjour工作之前在每个测试数据库(假设有两个内核)上运行: rake spec TEST_ENV_NUMBER=1 control-c (after tests start) rake spec TEST_ENV_NUMBER=2 control-c (after tests start) specjour 注意:我的config / database.yml具有用于测试的条目(对于并行测试gem来说很常见): test: adapter: postgresql encoding: unicode database: test<%=ENV['TEST_ENV_NUMBER']%> username: user password: parallel_tests似乎正确设置了它的数据库,但是我们的许多规范都失败了。 我还应该提到,运行specjour prepare会导致Postgres记录无法找到数据库的错误,但是会创建它们(没有表)。在随后的运行中,不会记录任何错误,但是也不会创建表。我的整个问题很可能仅是中的错误prepare,因此我在github上进行了报告。 我认为可以通过Specjour::Configuration.prepare在.specjour / hooks.rb中进行设置来在每个specjour测试数据库上运行任意代码,因此,如果有任何我需要运行的rake任务或其他代码,则可以在其中运行。

2
Object.any_instance should_receive vs Expect()接收
以下代码段按预期工作: Object.any_instance.should_receive(:subscribe) 但是,当使用新的rspec期望时,它不起作用: expect(Object.any_instance).to receive(:subscribe) 错误是: expected: 1 time with any arguments received: 0 times with any arguments 我该如何使用Expect()来接收它?

7
Rails 3.1,RSpec:测试模型验证
我从在Rails中使用TDD开始了我的旅程,遇到了一个关于模型验证测试的小问题,我似乎找不到解决方案。假设我有一个用户模型, class User < ActiveRecord::Base validates :username, :presence => true end 和一个简单的测试 it "should require a username" do User.new(:username => "").should_not be_valid end 这样可以正确测试状态验证,但是如果我想更具体些怎么办?例如,在错误对象上测试full_messages。 it "should require a username" do user = User.create(:username => "") user.errors[:username].should ~= /can't be blank/ end 我对最初尝试(使用should_not be_valid)的担心是RSpec不会产生描述性错误消息。它只是说“预期有效?返回假,就成真”。但是,第二个测试示例有一个较小的缺点:它使用create方法而不是new方法来获取错误对象。 我希望我的测试可以更具体地说明他们正在测试的内容,但同时不必接触数据库。 有人有意见吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.