3 回答

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊
如果您的代碼是真實的,那么實際上不需要模擬被測服務(wù)。
這工作得很好:
[TestMethod]
public async Task GetDataTest()
{
//Arrange
Order order = null;
var c1 = new Class1(order);
//Act
var result = await c1.GetData();
//Assert
Assert.IsFalse(result);
}

TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊
您必須從“GetData()”返回
public virtual async Task<bool> GetData()
{
if(order != null)
{
//do something
}
else
{
// do something else
}
//return task here with await keyword;
}

TA貢獻(xiàn)1829條經(jīng)驗 獲得超9個贊
好吧,單元測試用例和您共享的代碼沒有任何問題
除了
您沒有返回任務(wù),并且錯誤“找到了歧義匹配”看起來來自編寫在 else 塊中的代碼內(nèi)部。
嘗試將您的GetData()方法更改為:
public virtual async Task<bool> GetData()
{
TaskCompletionSource<bool> ts = new TaskCompletionSource<bool>();
if (order != null)
{
//do something
ts.SetResult(true);
}
else
{
// do something else
ts.SetResult(false);
}
return await ts.Task;
}
- 3 回答
- 0 關(guān)注
- 241 瀏覽
添加回答
舉報