如何从 UnitTesting 中的 System.Threading.Tasks.<string> 方法返回

Har*_*a W 0 c# unit-testing task vs-unit-testing-framework

我有一个具有以下签名的方法。

Task<string> Post(PartyVM model);
Run Code Online (Sandbox Code Playgroud)

我正在通过使用以下方法来测试上述Post方法来编写单元测试类。

        mockPartyManager.Setup(mr => mr.Post(It.IsAny<PartyVM>())).Returns(
           (PartyVM target) =>
           {
               if (target.PartyID.Equals(default(int)))
               {
                   target.Name = "NewP";
                   target.Status = "ACTIVE";
                   target.PartyRoleID = msoList.Count() + 1;
                   partyList.Add(target);
               }
               else
               {
                   var original = partyList.Where(q => q.PartyID == target.PartyID).Single();

                   if (original == null)
                   {
                       return "Execution failed";
                   }

                   original.Name = target.Name;
                   original.Status = target.Status;
               }

               return "Execution Successful";
           });
        this.MockMSOManager = mockPartyManager.Object;
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试返回字符串时收到错误消息。

错误 45 无法将类型“字符串”隐式转换为“System.Threading.Tasks.Task”

我该如何解决这个问题。

错误

Kap*_*pol 6

尝试使用该Task.FromResult<TResult>方法。来自 MSDN:

创建一个以指定结果成功完成的任务。

return Task.FromResult("Execution failed");
Run Code Online (Sandbox Code Playgroud)