有时,您的RSpec示例需要一种简单的方法来共享可重用的代码。最好的方法是使用Helpers。Helpers基本上是常规的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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)