You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用FluentAssertions.AspNetCore.Mvc断言ASP.Net Core 2 MVC控制器重定向到动作?

在ASP.NET Core 2 MVC中用FluentAssertions.AspNetCore.Mvc断言控制器重定向到指定动作

好消息!你想要的这种简洁断言写法完全可以实现,FluentAssertions.AspNetCore.Mvc库刚好提供了对应的扩展方法,不用再写那种冗长的BeRedirectedToRouteResult().WithAction(...)链式调用了。

首先要确保你已经安装了FluentAssertions.AspNetCore.Mvc NuGet包,并且在测试类里引用了正确的命名空间:

using FluentAssertions.AspNetCore.Mvc;

接下来就可以按照你期望的方式编写测试了,直接对控制器返回的结果做断言:

[Fact]
public void SomeAction_WhenCalled_RedirectsToSomeOtherAction()
{
    // 准备测试控制器实例
    var controller = new SomeController();

    // 调用要测试的动作方法
    var result = controller.SomeAction();

    // 断言重定向到指定动作
    result.Should().BeRedirectedToAction("SomeOtherAction");
}

如果你的重定向是跨控制器的(比如要跳转到另一个控制器的动作),还可以用重载方法指定控制器名称:

result.Should().BeRedirectedToAction("SomeOtherAction", "TargetController");

要是重定向还带了路由参数,也能继续链式添加参数断言:

result.Should().BeRedirectedToAction("SomeOtherAction")
      .WithRouteValue("id", 123);

这种写法完全贴合你的预期,比原来的链式写法更直观,完美对应RedirectToAction的返回结果类型。

内容的提问来源于stack exchange,提问作者Ben Gribaudo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:40:58