asp.net-mvc - 我如何对这种方法进行单元测试?

标签 asp.net-mvc unit-testing moq

我需要对这个方法进行单元测试。如果有帮助,我正在使用最小起订量作为我的模拟框架。

[AcceptVerbs(HttpVerbs.Get)]
public RedirectToRouteResult LogOff()
{
    FormsAuthentication.SignOut();
    return RedirectToAction("Index", "Post");
}

干杯:)

编辑:我想知道的主要是 FormsAuthentication。我什至应该测试一下吗?我想我需要模拟一个身份,然后检查 IsAuthenticated 是否为假?

最佳答案

您可以为 FormsAuthentication 创建一个包装器并将其 stub

formsAuthentication = mockery.Stub<IFormsAuthentication>();

然后做这样的事情。

With.Mocks(mockery)
    .Expecting(() => Expect.Call(() => formsAuthentication.SignOut()))
    .Verify(() => controller.LogOff());

 /* Asserts to go here */

在测试 FormsAuthentication 方面。在其他地方测试这个,关注点分离等等。

此操作的测试只需要检查是否已调用 SignOut 方法以及是否已发生重定向。请记住,您正在测试操作,而不是操作中的方法。您不会在提交操作中测试数据存储工作,您会模拟所有这些。

关于asp.net-mvc - 我如何对这种方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/733127/

相关文章:

javascript - 从 View 中的布局为 MVC 中的 DataTables 加载不同的 jQuery 库

c++ - Visual Studio Code C++ 单元测试是否覆盖?

Java - HashCode - 等于

c# - C# 单元测试中未启用 ILogger.LogLevel

c# - 如何使用Moq框架对azure服务结构进行单元测试?

javascript - 我可以输出 JSON,其中 ID 是键,而不是 ASP.NET MVC 中的数组(C#)

.net - .NET 世界中的前端开发人员 - 我需要知道什么?

c# - 如何在单元测试方法中模拟返回 IEnumerable<T> 的方法?

javascript - ASP.NET MVC : Ajax. Actionlink 不适用于参数

java - 单元测试同步