C#学习教程:如何使用NUnit和RhinoMocks模拟HttpContext.Current.Items我正在尝试编写一个测试方法,该方法应该向HttpContext.Current.Items添加一个项目。publicoverridevoidOnActionExecuting(HttpActionContextactionContext){HttpContext.Current.Items.Add("RequestGUID",Guid.NewGuid());base.OnActionExecuting(actionContext);我不知道如何在测试方法中运行时生成HttpContext.Current。可以在此方法中使用项目。我怎样才能做到这一点?此外,如何检查是否添加了项目(可以/应该使用哪个断言)您不需要重构代码即可使用RhinoMocks进行测试。你的UT应该像下面的例子:varhttpContext=newHttpContext(newHttpRequest("","http://google.com",""),newHttpResponse(newStringWriter()));HttpContext.Current=httpContext;//动作:target.OnActionExecuting(newHttpActionContext());//断言部分:Assert.IsTrue(HttpContext.Current.Items.Contains(REQUEST_GUID_FIELD_NAME));varg=HttpContext.Current.Items[REQUEST_GUID_FIELD_NAME]asGuid?;if(g==null){Assert.Fail(REQUEST_GUID_FIELD_NAME+"不是GUID,它是::{0}",HttpContext.Current.Items[REQUEST_GUID_FIELD_NAME]);}Assert.AreNotEqual(Guid.Empty,g.Value);顺便说一句,你可以把这个测试拆成2个:以上是C#学习教程:HowtouseNUnit我用RhinoMocks模拟了HttpContext.Current.Items共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——validationRequestGUID是否使用GUID填充validationGUIDisnotGuid.Empty本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
