1
我想模擬一個dbWriteService方法,當我調用它時返回一個聚合異常,即使一切都不爲空。我對嘲笑和犀牛模擬器很陌生,所以我沒有真正解決這個問題。犀牛模擬調用異步任務方法
這是我想在功能嘲笑的部分,我想測試:
public async Task<bool> SaveDataAsync(object data) {
...
await _dbWriteService.UpdateAsync(data);
...
}
我嘲諷writeService這樣的:
dbWriteService = MockRepository.GenerateStub<IDbWriteService>();
dbWriteService.Expect(service => service.UpdateAsync(null));
var wasSaved = subject.SaveDataAsync(data).Result;
dbWriteService.AssertWasCalled(service => service.UpdateAsync(null));
和我收到這樣一個異常:
System.AggregateException: One or more errors occurred. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at ClearingDataRepository.<SaveDataAsync>d__28.MoveNext() in ....\ClearingDataRepository.cs:line 170
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at UnitTests.Services.ClearingDataRepositoryTests.SaveDataAsync_Sucess() in ....\ClearingDataRepositoryTests.cs:line 90
我嘗試了一些與模擬功能的東西,但我沒有得到原因wh這東西不起作用。有人可以向我解釋這一點嗎?