NSubstitute - async await
範例程式碼放在 GitHub
前言
當紀錄一下 遇到async await 要如何回傳 假資料
程式碼
public class A10_Async
{
public interface IService { Task<int> GetCount(); }
public class MyDemo
{
private readonly IService _service;
public MyDemo(IService service)
{
this._service = service;
}
public async Task<int> Do()
{
var result = await _service.GetCount();
return result;
}
}
[TestMethod]
public void NSubstituteNote21()
{
//arrange
var service = Substitute.For<IService>();
service.GetCount()
.ReturnsForAnyArgs(Task.FromResult(66));
var sut = new MyDemo(service);
var expected = 66;
//act
var actual = sut.Do().Result;
//assert
Assert.AreEqual(expected, actual);
}
}
重點是ReturnsForAnyArgs塞資料的時候要用Task.FromResult
結語
Xunit.net可以直接測試方法上async , 但是MStest 不行
如果內容有誤請多鞭策謝謝