2013-11-27 3 views
1

Я использую Rspec для тестирования моего приложения Rails. В моем каталоге Model у меня есть файл Ruby с именем location_services.rb. В этом файлеТестирование приложения PORO в Rails

module LocationServices 
    class IpLocator 
    attr_reader :response, :status 
    def initialize(response, status) 
     .... 
    end 
end 

Как я могу проверить создание объекта IpLocator все само по себе? Я просто хочу, чтобы иметь возможность вызывать IpLocator.create_type_1.response и проверять, что я получаю без всего стека rails.

create_type_1 - метод класса в IpLocator, который будет вызывать новое, чтобы инициализировать объект.

+1

Нужна дополнительная информация. Что именно вы пытаетесь проверить? Что объект был создан во время выполнения другой операции? Будет полезен более широкий контекст. –

ответ

2

Я предполагаю, что ваш файл выглядит примерно так:

module LocationServices 
    class IpLocator 
    attr_reader :response, :status 
    def initialize(response, status) 
     .... 
    end 

    def self.create_type_1 
     self.new 
     # Possibly some more code here 
    end 
    end 
end 

Вы можете создать spec/models/location_services_spec.rb и структурировать его так:

require 'spec_helper' 

describe LocationServices::IpLocator do 
    describe '.create_type_1' do 
    locator = LocationServices::IpLocator.create_type_1 
    expect(locator).to # finish your assertion here 
    end 
end 

Соглашение по именованию может работать не совсем верно. Если RSpec не найдет необходимый класс, вы можете попробовать переместить и переименовать location_services.rb в app/models/location_services/ip_locator.rb. Переместите и переименуйте спецификацию до spec/models/location_services/ip_locator_spec.rb, если вы это сделаете.

При необходимости файл spec_helper.rb может загружать стек Rails для ваших тестов. Это может зависеть от того, как настроен ваш файл.

+0

Выглядит хорошо, попробует все это. – slindsey3000

Смежные вопросы