.NET Core NUnit 上的单元测试失败

Unit Tests Failing on .NET Core NUnit

我正在尝试为登录控制器设置测试,但每当我 运行 测试时它都会失败。我收到以下错误。 should_Login() 中的 var 结果始终为 null。

留言: 预期:不为空 但是是:null

Stack Trace:
UserTests.should_Login() line 47
    GenericAdapter`1.GetResult()
    AsyncToSyncAdapter.Await(Func`1 invoke)
    TestMethodCommand.RunTestMethod(TestExecutionContext context)
    TestMethodCommand.Execute(TestExecutionContext context)
    <>c__DisplayClass1_0.<Execute>b__0()
    BeforeAndAfterTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)

//UserTests

        public class UserTests
        {
            Mock<IUserService> UserServiceMock = new Mock<IUserService>();
            private UserController UserController;
    
            [SetUp]
            public void Setup()
            {
                UserServiceMock.Setup(x => x.Authenticate(new UserRequest { Email = "antony@gmail.com", Password = "Password1" }))
                    .ReturnsAsync(new ApiResponse(HttpStatusCode.OK)
                    {
                        ResponseObject = new
                        {
                            User = new
                            {
                                Id = 1,
                                Name = "Test",
                                Email = "test@gmail.com",
                                Token = "TokenGen"
                            }
                        }
                    });
            }
            [Test]
            public async Task should_Login()
            {
                UserController = new UserController(UserServiceMock.Object);
    
                var result = await UserController.Authenticate(
                    new UserRequest { Email = "test@gmail.com", Password = "Password" });
    
                Assert.IsNotNull(result);
                Assert.AreEqual(200, result.HttpResponseCode);
            }
        }

用户控制器如下所示

public class 用户控制器:ControllerBase { 私有 IUserService _userService; public 用户控制器(IUserService 用户服务) { _userService = 用户服务; }

    [AllowAnonymous]
    [HttpPost("authenticate")]
    public Task<ApiResponse> Authenticate([FromBody] UserRequest userRequest)
    {
        try
        {
            return _userService.Authenticate(userRequest);
        }
        catch (Exception ex)
        {
            var response = new ApiResponse(HttpStatusCode.InternalServerError) { ResponseMessage = ex.Message };
            return Task.Run(() => response);
        }
    }
}

您的模拟正在寻找特定输入 (antony@gmail.com),但您的单元测试正在传递不同的输入。