. 내가 해결 한 방법은 factory_girl gem을 사용하는 것이었다. 당신이 공장을 만든 후이 같이 보이는 모델 할 필요가 이제
require 'factory_girl'
require 'faker' # you can use faker, if you want to use the factory to generate fake data
FactoryGirl.define do
factory :generate_data, class: MyModule::MyClass do
key 100 # doesn't matter what you put here, it's just a placeholder for now
another_key 'value pair'
end
end
:
Module MyModule
class MyClass
#for every key you create in your factory you must have a corresponding attribute accessor in the model.
attr_accessor :key, :another_key
#you can also place methods here to call from your spec test, if you wish
# def self.test
#some test
# end
end
end
이제 돌아갈를
이 공장을 만들 : 여기
은 기본이다 예를 들어 다음과 같이 할 수 있습니다.
describe "My test" do
let(:myvar) { @myvar }
context "First test pass" do
it "passes" do
@myvar.key = 20 #when you do this you set it now from 100 to 20
expect(@myvar.key).to eq(20)
end
end
context "Second test pass" do
it "passes" do
expect(@myvar.key).to eq(20) #it should still be 20 unless you overwrite that variable
end
end
end
다른 사람들이 말했듯이, 단위 테스트의 적절한 방법이 아닙니다. 하지만, 당신이 단위 테스트를하고 있는지 여부를 어떻게 알 수 있습니까? 그래서, 나는 판단하지 않을 것이다. 어쨌든 행운을 빌어 다른 해결책이 있다면 알려주세요!
를 들어
더 낫다. 컨텍스트가 필요한 경우 컨텍스트 블록에서 컨텍스트를 만듭니다. – shirakia