1
我想單元測試搜索查詢的異步方法。單元測試定義如下:單元測試使用NUnit和C的異步方法#
internal async Task<ReadyToScheduleResult> ExecuteAsync(IAppointmentRepository appointments)
{
var query = await appointments.GetReadyToSchedule(this.Id, exclude: NotificationTags.Something);
單元測試只是掛斷,並從來沒有返回結果:
[Test]
public async Task MyTest1()
{
var readyToScheduleQuery = new ReadyToScheduleQuery()
{
Facets = new List<Facet>()
{
new Facet()
{
Name = "Service Type",
Values = new List<FacetValue>()
{
new FacetValue()
{
Value = "SomeJob",
Selected = true
}
}
}
}
};
var result = readyToScheduleQuery.ExecuteAsync(_appointmentRespositoryStub);
Assert.IsNotNull(result);
}
readyToScheduleQuery的ExecuteAsync
方法定義如下。有任何想法嗎?
它掛起來,如果我做了以下內容:(注意末尾的Result
屬性)
var result = readyToScheduleQuery.ExecuteAsync(_appointmentRespositoryStub).Result;
我看到的第一個問題是'result'不是ReadyToScheduleResult對象 - 它是一個Task,這意味着您的IsNotNull斷言將會通過。你需要等待它。你確定GetReadyToSchedule返回嗎? –
n8wrl
是的,當我嘗試訪問包含實際對象的.Result時。單元測試掛起並不返回。 –
我認爲GetReadyToSchedule掛起。通過將它從測試中取出來進行測試 - 嘗試var query = await Task .FromResult(null) –
n8wrl