我无法在我的测试项目中测试应用程序变量

时间:2014-01-06 08:30:35

标签: c# variables testing nunit state

我试图在测试Drven开发上做一些POC。在我的项目中,我正在使用应用程序状态变量,所以我需要假装它们,因为在TDD执行期间HttpContext不可用。

我有搜索并发现了一些伪造Application变量的代码。代码如下所示:

[TestMethod()]
public void StartReportService_ApplicationStateShouldContainMyIndex()
{
    //No HttpApplicationBase in System.Web.Abstractions, must use Real Object
    var application = new Mock<HttpApplication>();

    //Real object does not have a property of type HttpApplicationStateBase so must use real one?
    //var applicationStateBase = new Mock<HttpApplicationStateBase>();

    //real one not creable so HACK get private constructor
    var ctor = typeof(HttpApplicationState).GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[] { }, new ParameterModifier[] { });
    var applicationState = (HttpApplicationState)ctor.Invoke(new Object[] { });

    //fails here, HttpApplication.Application not overridable
    application.SetupProperty(x => x.Application, applicationState);


    var plugin = HttpApplicationPlugin.HttpApplicationPluginInstance;
    plugin.Application_Start(application.Object,null);


}

我无法找到HttpApplicationPlugin类。有人可以帮忙吗?

0 个答案:

没有答案