Несомненно, что простой тест будет выглядеть следующим образом:
- Разрушается ли он при создании экземпляра?
- Возвращает ли он данные при наличии хороших аргументов?
- Возвращает ли я то, что я ожидаю (ноль / ноль / исключение?), Если даны неверные аргументы или те, которые не дают результатов?
Какой-то код:
describe :City do
let(:country_version) { 123412 }
# other useful args here
context "On instantiation" do
context "Given valid arguments" do
subject { City.new country_version, ...}
it { should_not be_nil }
it { should be_a_kind_of City }
end
end
end
context "Given a country version id" do
context "that is valid" do
context "and records exist for in the datastore"
let(:city) { City.new country_version, ...}
subject { city.get_data }
it { should_not be_nil }
it { should be_a_kind_of... (Array, Hash?) }
it { should include( ...? }
end
end
end
end
Очевидно,это не сработает, так как я понятия не имею, что должно входить и выходить, но дает вам кое-что для продолжения, а также подразумевает некоторые из отсутствующих спецификаций (например, недопустимые аргументы и т. д.)
См. https://www.relishapp.com/rspec/rspec-expectations для получения дополнительной информации.
Некоторые комментарии здесь также верны, вам, вероятно, понадобятся насмешки в какой-то момент, и вам, вероятно, все равно нужно реорганизовать этот метод, так что публикацияна форум по стилю кода тоже может быть идея.