我在2013年开始编写代码,并从中休息并决定从头开始。但是对于我的生活无法得到这个错误。我已经完成了我能想到的一切,但它不需要lib文件中的方法。
这是我的文件夹结构
fizzbuzz
lib/
fizzbuzz.rb
spec/
fizzbuzz_spec.rb
spec_helper.rb
.rspec
fizzbuzz_spec.rb文件
require "fizzbuzz"
describe "fizzbuzz" do
it "tells me that 3 is divisible by 3" do
expect(divisible_by_three?(3)).to_eq true
end
end
继承人fizzbuzz.rb文件
def fizzbuzz
def divisible_by_three? (number)
number % 3 ==0
end
end
是的,我理解它并不是世界上最令人费解的事情。但是我的思绪一片空白,我在这里遇到了麻烦,并在网上搜索并按照教程去做另一种方式,但它似乎从来没有调用过该方法。
我已经
了require "fizzbuzz"
require './lib/fizzbuzz'
require_relative '../lib/fizzbuzz'
请帮助,谢谢。
亲切的问候,
感恩的开发者。
答案 0 :(得分:1)
我看到这里有2个问题。在lib/fizzbuzz.rb
文件中,方法divisible_by_three?
方法包含在另一个方法中。虽然这在技术上是允许的,但如果可以避免这种情况则不可取。相反,请将def fizzbuzz
更改为class Fizzbuzz
。
class Fizzbuzz
def divisible_by_three? (number)
number % 3 ==0
end
end
在spec文件中,require_relative '../lib/fizzbuzz'
没问题。但是,要使用该方法(至少在前面的代码片段中定义),您需要使用该类的实例来访问该方法。请参阅下面的代码段。
require_relative '../lib/fizzbuzz'
describe "fizzbuzz" do
let(:instance) { Fizzbuzz.new }
it "tells me that 3 is divisible by 3" do
expect(instance.divisible_by_three?(3)).to eq true
end
end