RSpec - 辅助类

RSpec - 辅助类 首页 / RSpec入门教程 / RSpec - 辅助类

有时,您的RSpec示例需要一种简单的方法来共享可重用的代码。最好的方法是使用HelpersHelpers基本上是常规的Ruby方法,您可以在示例中共享它们。让无涯教程考虑以下代码-

class Dog 
   attr_reader :good_dog, :has_been_walked 
   
   def initialize(good_or_not) 
      @good_dog=good_or_not 
      @has_been_walked=false 
   end 
   
   def walk_dog 
      @has_been_walked=true 
   end 
end 

describe Dog do 
   it 'should be able to create and walk a good dog' do 
      dog=Dog.new(true) 
      dog.walk_dog 
      
      expect(dog.good_dog).to be true
      expect(dog.has_been_walked).to be true 
   end 
   
   it 'should be able to create and walk a bad dog' do 
      dog=Dog.new(false) 
      dog.walk_dog 

      expect(dog.good_dog).to be false
      expect(dog.has_been_walked).to be true 
 
   end 
end

这段代码很清楚,但是代码有冗余。可以采用上面的代码,并通过名为create_and_walk_dog()的帮助程序方法减少这种重复。

链接:https://www.learnfk.comhttps://www.learnfk.com/rspec/rspec-helpers.html

来源:LearnFk无涯教程网

class Dog
   attr_reader :good_dog, :has_been_walked 
   
   def initialize(good_or_not)
      @good_dog=good_or_not 
      @has_been_walked=false 
   end 
   
   def walk_dog 
      @has_been_walked=true 
   end 
end 

describe Dog do 
   def create_and_walk_dog(good_or_bad)
      dog=Dog.new(good_or_bad)
      dog.walk_dog
      return dog 
   end 
   
   it 'should be able to create and walk a good dog' do
      dog=create_and_walk_dog(true)
      
      expect(dog.good_dog).to be true
      expect(dog.has_been_walked).to be true 
   end 
   
   it 'should be able to create and walk a bad dog' do 
      dog=create_and_walk_dog(false)
      
      expect(dog.good_dog).to be false
      expect(dog.has_been_walked).to be true 
   end 
end

运行上面的代码时,您将看到此输出-

.. 
Finished in 0.002 seconds (files took 0.11401 seconds to load) 
2 examples, 0 failures

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入拆解Java虚拟机 -〔郑雨迪〕

Nginx核心知识150讲 -〔陶辉〕

Web协议详解与抓包实战 -〔陶辉〕

Python核心技术与实战 -〔景霄〕

苏杰的产品创新课 -〔苏杰〕

图解 Google V8 -〔李兵〕

Service Mesh实战 -〔马若飞〕

技术面试官识人手册 -〔熊燚(四火)〕

深入浅出可观测性 -〔翁一磊〕

好记忆不如烂笔头。留下您的足迹吧 :)