我有一个测试套装,检查当currentUser有uid时是否调用了fireService方法(addModelToCollection)。当在方法上调用verify时,它抛出一个异常,表示所调用的on方法是this
FirestoreServiceMock。addModelToCollection(' Business', 'Business'的实例,{id: uid})
test('fireStore service should be called', () async {
// Arange
final authService = getAuthServiceMock();
final fireService = getFirestoreServiceMock();
when(authService.currentUser).thenReturn(UserModel(uid: 'uid'));
when(fireService.addModelToCollection())
.thenAnswer((realInvocation) => Future.value('sdfff'));
final model = RegistraionViewModel();
model.createBusiness({
'title': "text",
'description': "text",
});
verify(fireService.addModelToCollection('businesses', business, id: 'some string'));
});
误差
No matching calls. All calls: FirestoreServiceMock.addModelToCollection('businesses', Instance
of 'Business', {id: uid})
(If you called `verify(...).called(0);`, please instead use `verifyNever(...);`.)
package:test_api fail
package:mockito/src/mock.dart 670:7 _VerifyCall._checkWith
package:mockito/src/mock.dart 986:18 _makeVerify.<fn>
testviewModel_testregistration_view_model_test.dart 60:15 main.<fn>.<fn>.<fn>
我不熟悉模拟和测试,我不确定这里发生了什么,任何帮助;)
您在验证方法中输入的business
是什么?根据您上面提供的代码,我最好的猜测是对象business
和实际方法中使用的对象不完全相同(哈希值不同)。id
是uid
而不是'Some String'
是因为when(authService.currentUser).thenReturn(UserModel(uid: 'uid'))
为进一步的澄清/解释,请提供.createBusiness()
方法