Кто-нибудь может сказать мне, подходит ли мой подход?
Я хочу знать, что api
, который мы используем, работает так, как задумано, и когда он меняется, чтобы мы знали, что он изменился, без необходимости копаться во всей логике code
. Мы предоставим набор аргументов, мы ожидаем определенный результат, чтобы мои юнит-тесты работали хорошо.
User.login({email: username, password: password);
Приведенный выше метод в моей модели фактически обращается к API и возвращает мне ответ. Я хочу проверить, работает ли метод входа в мою модель должным образом.
Ниже мой approach
.
Я заглушаю свой метод входа в свою модель с требуемыми параметрами и ожидаемым ответом, чтобы избежать попадания в API, а затем ожидать, что метод login
даст derive
тот же ответ. Я использую ActiveRestClient.
Ниже моя модель
class User << ActiveRestClient::Base
get :all, '/user'
get :find, '/user/:id'
end
Ниже моя спецификация
require 'spec_helper'
describe User do
let(:username) {"[email protected]"}
let(:password) {"123"}
context "when signing in" do
let(:response) {{token: "123"}.to_json}
it "should sign in with valid input" do
allow(User).to receive(:login).with({email: username, password:
password}).and_return(response)
expect(User.login({email: username, password: passwor})).to eq(response)
end
end
end
Кто-нибудь может сказать мне, подходит ли мой подход?
User.login
возвращает то, что вы сказали. - person spickermann   schedule 13.08.2014