Dav*_*vid 3 c# authentication unit-testing moq .net-core-2.0
我正在使用Moq在我的.net core 2应用程序中进行自动化测试.我们使用承载身份验证,并且需要能够从HttpContext对象中提取名称以确保我们拥有正确的用户:
var userName = HttpContext.User.Identity.Name;
Run Code Online (Sandbox Code Playgroud)
我发现了很多使用System.Web的例子,但没有一个能让我模拟Core 2的设置.
您可以实现相同的功能,而无需模拟任何内容并使用框架提供的现有类.
public class ContextHelper {
public static HttpContext GetHttpContext(string name = "validemail@test.com") {
var identity = new GenericIdentity(name, "test");
var contextUser = new ClaimsPrincipal(identity);
var httpContext = new DefaultHttpContext() {
User = contextUser
};
return httpContext;
}
}
Run Code Online (Sandbox Code Playgroud)
仅仅因为我们有能力模仿某些事情并不意味着我们必须在大多数时候嘲笑.