私はMoqでテストするのが初めてです。だから、ReturnsAsync
に関する少し混乱しています。 ここに私のテストメソッドがあります。ReturnsAsync
は、Setup
で定義されたメソッドによって返される型を受け取るはずです。私は正しい?Moq WebApi非同期メソッド
しかし、ReturnsAsync
はもう1つの署名が必要です - Func
代理人を探しています。
[TestClass]
public class TourObjectControllerTest
{
[TestMethod]
public async Task GetTourObjects()
{
var mockService = new Mock<ITourObjectService>(MockBehavior.Default);
mockService.Setup(x => x.GetAll()).ReturnsAsync(new Task<IEnumerable<TourObjectDTO>>);
var controller = new TourObjectController(mockService.Object);
var result = await controller.Get();
Assert.IsNotNull(result);
Assert.AreSame(typeof(TourObjectViewModel), result);
}
}
被試験方法:
public async Task<IEnumerable<TourObjectViewModel>> Get()
{
IEnumerable<TourObjectViewModel> viewmodel = null;
try
{
var tourobjects = await _tos.GetAll();
viewmodel = Mapper.Map<IEnumerable<TourObjectViewModel>>(tourobjects);
}
catch (Exception ex)
{
Log.ErrorFormat("Method:{0} <br/> Error: {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
}
return viewmodel;
}
インテリセンスは何と言っていますか? –
@KennethK(私はあなたが、VSで作業していると仮定)。、それはタスクが>はい、方法はandrey.shedko @ –