1
我想测试一个使用DotNetOpenAuth的AccountController,但我遇到了问题。我想测试Logon ActionResult以查看它是否返回了正确的视图。测试失败,因为领域(我认为)有一个合同,要求HttpContext.Current不为null。我想我必须以某种方式嘲笑这个请求,但我不知道我该怎么做。测试/模拟DotNetOpenAuth控制器
这是ActionResult代码。它直接来自DotNetOpenAuth示例。
[AcceptVerbs(HttpVerbs.Post), ValidateAntiForgeryToken]
public ActionResult LogOn(string openid_identifier,
bool rememberMe,
string returnUrl)
{
Identifier userSuppliedIdentifier;
if (Identifier.TryParse(openid_identifier, out userSuppliedIdentifier))
{
try
{
var request = this.RelyingParty
.CreateRequest(openid_identifier,
Realm.AutoDetect,
Url.ActionFull("LogOnReturnTo"));
if (!string.IsNullOrEmpty(returnUrl))
{
request.SetUntrustedCallbackArgument("returnUrl", returnUrl);
}
return request.RedirectingResponse.AsActionResult();
}
catch (ProtocolException ex)
{
ModelState.AddModelError("OpenID", ex.Message);
}
}
else
{
ModelState.AddModelError("openid_identifier",
"This doesn't look like a valid OpenID.");
}
return RedirectToAction("LogOn", "Account");
}
由于提前,
Pickels