public async Task<ResModel> GetDetails()
{
ResModel resp = new ResModel();
resp = await MobController.GetAllDeatails();
return resp;
}
await
では、これはGetAllDeatails
という名前の非同期タスクメソッドを呼び出し、オブジェクトResModel
を返します。別の非同期タスクを待つAsyncTaskのユニットテスト方法は?
ユニットテストを正しく作成するにはどうすればよいですか?私が作成した
ユニットテストは、右下の次のとおりです。
[TestMethod]
public async Task GetFromGetDetails()
{
var controller = new SevicesController();
ResModel resp = new ResModel();
using(ShimsContext.Create())
{
ProjectAPI.Fakes.ShimMobController.GetAllDeatails =() => {
resp.MessageType = "Get"
resp.Message ="contdetail";
return resp;
};
returnValueOfAsyncTask = await controller.GetDetails();
Assert.IsNotNull(returnValueOfAsyncTask);
}
}
戻り値の型がGetAllDeatails
に非同期でなければならないので、これはShimContext
作成でエラーが発生しますが、ここでそれが唯一のオブジェクトを返します。
エラーCS0029は、暗黙的に
'System.Threading.Tasks.Task<ProjectAPI.Models.ResModel>'
アンitTestProjectAPI
にタイプ 'ProjectAPI.Models.ResModel'
を変換できません。私は取得しています主なエラーです。
親愛なる@BartoszKP非同期公衆私は質問を編集しました。そして、あなたが示唆したように、それを絞り込むいます。この問題は、** ProjectAPI.Fakes.ShimMobController.GetAllDeatails **のように作成する偽のメソッドで行う必要があります。これはAsyncオブジェクトを返さなければならないためですが、ここではオブジェクトを返すだけです –
ありがとうございます。 、エラーメッセージを貼り付けるそれはあなたが – BartoszKP
おかげ@BartoszKP :)何を言ってるのかエラー完全には明らかだそう**エラー\t CS0029 \tポストの電子は、暗黙的に「System.Threading.Tasks.Taskに型「ProjectAPI.Models.ResModel」を変換できません。 '\t UnitTestProjectAPI ** 私が得ている主なエラーです。問題は、私が偽物として作成している戻り値の型と指定されたAsyncTaskメソッドとの違いでなければなりません。何か案が....? –