Testuję zmienną instancji poziomu klasy (i seterów) w klejnocie za pomocą protokołu RSpec. Muszę przetestować następujące:Testowanie zmiennych klasy RSpec
- Prawidłowa wartość domyślna jest podawana, jeśli ustawnik nigdy nie jest używany.
- Zmienna może być pomyślnie zaktualizowana przez setery.
Oczywiście istnieje tutaj kwestia kolejności uruchamiania. Jeśli zmienię wartości za pomocą ustawiaczy, tracę pamięć o wartości domyślnej. Mogę zapisać go do zmiennej przed testem ustawiającym, a następnie zresetować wartość na końcu, ale to tylko chroni mnie, jeśli wszystkie testy ustawiające podążają tą samą praktyką.
Jaki jest najlepszy sposób przetestowania wartości domyślnej zmiennej?
Oto prosty przykład:
class Foo
class << self
attr_accessor :items
end
@items = %w(foo bar baz) # Set the default
...
end
describe Foo do
it "should have a default" do
Foo.items.should eq(%w(foo bar baz))
end
it "should allow items to be added" do
Foo.items << "kittens"
Foo.items.include?("kittens").should eq(true)
end
end
ohh, więc masz na myśli coś w rodzaju 'Foo.bar = 1'? –
Tak, kod jest aktualizowany na przykład. –