3 回答
TA贡献1900条经验 获得超5个赞
如果您的代码是真实的,那么实际上不需要模拟被测服务。
这工作得很好:
[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贡献1811条经验 获得超4个赞
您必须从“GetData()”返回
public virtual async Task<bool> GetData()
{
if(order != null)
{
//do something
}
else
{
// do something else
}
//return task here with await keyword;
}
TA贡献1829条经验 获得超9个赞
好吧,单元测试用例和您共享的代码没有任何问题
除了
您没有返回任务,并且错误“找到了歧义匹配”看起来来自编写在 else 块中的代码内部。
尝试将您的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 关注
- 208 浏览
添加回答
举报