Я получаю сообщение об ошибке NoMethodError при попытке использовать RSpec для тестирования созданного нами драгоценного камня.NoMethodError при запуске теста RSpec
это мой драгоценный камень: ~/проект/Gemz/спецификации/Библиотека/checksomething.rb
class Checkpercentage
#1) what is x% of y?
def self.findAmount(rate, base)
resultAmount = rate * base/100
return resultAmount
end
#2) x is what percentage of y?
def self.findPercent(amount, base)
resultPercent = amount/base * 100
return resultPercent
end
#3) x is y% of what number?
def self.findBase(amount, rate)
resultBase = amount/rate *100
return resultBase
end
end # End Module
И это мой RSpec тест файла: ./project/gemz/spec/lib /checkpercentage_spc.rb
require "spec_helper"
require "checksomething"
RSpec.describe Checkpercentage, '#intNum' do
context "with no integer entered" do
it "must be a number" do
checkpercentage = Checkpercentage.new
checkpercentage.findPercent(100, 200)
expect(checkpercentage.intNum) > 0
end
end
end
Я хочу, чтобы проверить, если значения enterend в методе findPercentage является> 0. Однако, когда я бег Rspec команды в моем терминале (RSpec спецификации/Библиотека/checkpercent age_spc.rb) следующее сообщение об ошибке появляется:
Failures:
1) Checkpercentage#intNum with no integer entered must be a number
Failure/Error: checkpercentage.findPercent(100, 200)
NoMethodError: undefined method `findPercent' for #<Checkpercentage:0x9956ca4>
# ./spec/lib/checkpercentage_spc.rb:8:in `block (3 levels) in <top (required)>'
Finished in 0.00089 seconds (files took 0.17697 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/lib/checkpercentage_spc.rb:6 # Checkpercentage#intNum with no integer entered must be a number
Я довольно новый на рубин на рельсах. Может ли кто-нибудь указать мне правильное направление? Любая помощь приветствуется.
@Santhosh Я уже делаю это на предыдущей строке, присваивая класс переменной «checkpercentage»: - checkpercentage = Checkpercentage.new - checkpercentage.findPercent (100, 200) –
Отметьте мой ответ. – Santhosh
Методы класса могут быть вызваны только для константы класса. Когда вы создаете объект, методы, которые вы определили, недоступны, так как это «экземпляр», с которым вы говорите, а не «определение класса». – JensDebergh