【发布时间】:2021-11-24 02:53:06
【问题描述】:
我刚刚从 .NET Core 2.2 升级到 3.1。我进行了测试以确认我添加到 HttpContext.Request 的扩展方法正在运行。我以前能够做以下事情:
var context = new DefaultHttpContext();
var c = new Dictionary<string, string> {{"test", "passed"}};
context.Request.Cookies = new RequestCookieCollection(cookies);
var result = context.Request.GetPrimedValue();
现在不可能吗?我尝试为此使用 Moq,但似乎有太多事情阻止我使用任何可用的东西设置 Cookies 属性。解决方法是什么?
注意:我知道这是使用一个不应该是内部的内部类,所以我不同意隐藏内部命名空间,但我不确定我的替代品是。
【问题讨论】:
-
然后模拟
IRequestCookieCollection接口并设置预期的行为 -
请阅读整篇文章。这似乎需要大量的代码来设置所有内容,因为我在授权过程中使用它,并且似乎有很多检查只是为了确保您正在创建的 cookie 集合甚至可以用于设置cookie 属性。当我为此使用模拟并尝试设置 cookies 属性时,有很多验证失败,因此永远不会设置 cookies 属性。
-
@Dinerdo,你碰巧解决了这个问题吗?我也一直在寻找解决方案。
-
不幸的是,我暂时忽略了这些测试。 :(
-
我在这里遇到了完全相同的限制。那件事现在根本不可嘲笑。模拟所有东西所需的时间,如果周围的所有东西都经过测试,可能不会花时间......这真是太糟糕了。
标签: c# unit-testing cookies asp.net-core-3.1