使用Rspec进行rails测试详解1-Transactions
2013-08-08 15:16
381 查看
当我运行测试时,需要用到测试数据,测试数据可以通过工具构造,也可以手工添加。在rspec中,需要注意一下问题:
1、配置 spec_helper.rb
在我们install Rspec时,会自动添加一个名为spec_helper.rb的文件,文件中有一个默认的配置项:
2、before (:each)
当定义before(:each),在其每个测试之前,都会先执行该处代码,目地是重新装载其中定义的变量,设置的测试环境等。
请看下面的示例:
当定义before(:all),在执行测试之前,会调用一次该处代码,里面定义的值可能随着测试的进行而改变。
请看下面的示例:
age=16
age=17 # 可以看出,test1所做的修改被用到了test2测试中。
注意:
*故国在before(:all)之后使用了before(:each)重新加载对象,则类似于 before(:each)
*使用before之后,可以通过after(:all)删除对象
1、配置 spec_helper.rb
在我们install Rspec时,会自动添加一个名为spec_helper.rb的文件,文件中有一个默认的配置项:
RSpec.configure do |config| config.use_transactional_fixtures = true end当该配置设置为true,则运行每个测试之前,都会清空测试数据库,这样,每个测试都是互不干扰的。如果要手动管理你的测试数据库,可以将以上配置设置为false。
2、before (:each)
当定义before(:each),在其每个测试之前,都会先执行该处代码,目地是重新装载其中定义的变量,设置的测试环境等。
请看下面的示例:
context 'before_each' do before(:each) do @count ||= 1 end it '#test1' do @count += 1 puts "count= #{@count}" end it '#test2' do @count += 1 puts "count= #{@count}" end end 运行测试结果,会在后台输出两遍count=23、before(:all)
当定义before(:all),在执行测试之前,会调用一次该处代码,里面定义的值可能随着测试的进行而改变。
请看下面的示例:
context 'before_each' do before(:each) do @student = FactoryGirl.create(:student) #student.age = 15 end it '#test1' do @student.age = @student.age +1 puts "age= #{@student.age}" end it '#test2' do @student.age = @student.age +1 puts "age= #{@student.age}" end end测试结果为:
age=16
age=17 # 可以看出,test1所做的修改被用到了test2测试中。
注意:
*故国在before(:all)之后使用了before(:each)重新加载对象,则类似于 before(:each)
*使用before之后,可以通过after(:all)删除对象
before(:each) do @student.reload end after(:all) do : @student.destroy end
相关文章推荐
- 使用Rspec进行rails测试详解1-搭建测试环境
- rails3使用cucumber和rspec进行测试
- 使用ab进行压力测试详解
- 使用ab进行压力测试详解
- 使用ab进行压力测试详解
- 使用 RSpec 进行行为驱动测试
- 使用 RSpec 进行行为驱动测试
- 使用ab进行压力测试详解
- [置顶] MySQL架构之存储引擎的配置以及使用mysqlslap工具进行压力测试详解
- 使用 RSpec 进行行为驱动测试
- ruby on rails中使用 RSpec 进行行为驱动测试
- 使用Rspec进行行为驱动测试
- 使用Jmeter对WebService进行压力测试
- Rails做rspec测试时出现bcrypt错误的解决
- 搭建mocha测试环境并使用selenium进行测试
- Win7下的使用QTP进行猴子测试的性能日志实现方法
- 详细介绍windows下使用python pylot进行网站压力测试
- 使用apacheBench对网站进行压力测试(ab压力测试)
- 在linux上使用Jmeter进行压力测试
- 使用Jmeter对软件进行压力测试