1
我正在將WCF調用轉換爲異步運行的應用程序,以確保GUI在獲取數據時具有響應性。大多數情況下,我使用這些方法來填充ViewModel的屬性。測試基於任務的WCF調用
舉例來說,這裏是我的新老代碼:
private async Task LoadDataItems()
{
//DataItems = Service.SelectDataItems();
DataItems = await Service.SelectDataItemsAsync();
}
而且,這裏的一些測試代碼中使用RhinoMocks:
//Doesn't set DataItems when LoadDataItems() is called
myWcfServiceClient.Stub(async client => await client.SelectDataItemsAsync()).Return(new Task<List<DataItemDto>>(() => new List<DataItemDto> { testDataItem }));
//NullReferenceException on SelectDataItemsAsync()
myWcfServiceClient.Stub(client => client.SelectDataItemsAsync().Result).Return(new List<DataItemDto> { testDataItem });
基本上,在我的單元測試,無論是DataItems
未設置或者我得到一個NullReferenceException試圖僞裝結果。這可能是因爲太多的RhinoMocks比任何一個問題...