如何使用来自外部服务的验证存根模型
How to stub a model with a validation from external service
这里我们有一个具有多个验证的客户模型,其中一个验证访问外部服务以验证此人是否存在。
我们在这里测试所有验证:
describe Customer do
it 'is not valid without a name' do
customer = build_stubbed(:customer, name: nil)
customer.valid?
asserts...
end
it 'is not valid without a full name' do
customer = build_stubbed(:customer, name: 'Test')
customer.valid?
asserts...
end
if 'should check if user really exists' do
customer = build_stubbed(:customer, doc_id: '00000000')
customer.valid?
asserts....
end
other tests...
最后一项使用 doc_id 测试外部服务验证以检查此人是否存在,但这里每个测试都会运行所有验证,所以我应该 stub_request 服务请求之前还是在其中存根每个测试?
例如,您应该使用 context to specify which test uses the stup and which does not. That's advised here。这样,您将能够拥有一个存根方法的上下文,并在其他上下文中使用外部服务测试验证。
这里我们有一个具有多个验证的客户模型,其中一个验证访问外部服务以验证此人是否存在。
我们在这里测试所有验证:
describe Customer do
it 'is not valid without a name' do
customer = build_stubbed(:customer, name: nil)
customer.valid?
asserts...
end
it 'is not valid without a full name' do
customer = build_stubbed(:customer, name: 'Test')
customer.valid?
asserts...
end
if 'should check if user really exists' do
customer = build_stubbed(:customer, doc_id: '00000000')
customer.valid?
asserts....
end
other tests...
最后一项使用 doc_id 测试外部服务验证以检查此人是否存在,但这里每个测试都会运行所有验证,所以我应该 stub_request 服务请求之前还是在其中存根每个测试?
例如,您应该使用 context to specify which test uses the stup and which does not. That's advised here。这样,您将能够拥有一个存根方法的上下文,并在其他上下文中使用外部服务测试验证。