我想在Web应用程序中使用AutoFac.我有根容器,每个会话一个子容器和每个请求的子容器.我正在试图找出管理这些生命周期范围的最佳方法.在Global.asax.cs中,我添加了以下内容:
protected void Application_Start(object sender, EventArgs e)
{
var container = ...;
}
protected void Session_Start(object sender, EventArgs e)
{
var sessionScope = container.BeginLifetimeScope("session");
Session["Autofac_LifetimeScope"] = sessionScope;
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
var sessionScope = (ILifetimeScope) Session["Autofac_LifetimeScope"];
var requestScope = sessionScope.BeginLifetimeScope("httpRequest");
HttpContext.Current.Items["Autofac_LifetimeScope"] = requestScope;
}
protected void Application_EndRequest(object sender, EventArgs e)
{
var requestScope = (ILifetimeScope)HttpContext.Current.Items["Autofac_LifetimeScope"];
requestScope.Dispose();
}
protected void Session_End(object sender, EventArgs e)
{
var sessionScope = (ILifetimeScope)Session["Autofac_LifetimeScope"];
sessionScope.Dispose();
}
protected void Application_End(object sender, EventArgs e) …Run Code Online (Sandbox Code Playgroud) 假设我正在开发一种方法,我可以传入两个数字并获得最高数字.由于我正在做这种TDD风格,我将进行十几次单元测试并提出以下实现:
public int GetHighestNumber(int x, int y)
{
if (x > y) return x;
else return y;
}
Run Code Online (Sandbox Code Playgroud)
这非常有效.
测试已用于创建实现.实施完成后,保持这些单元测试有什么意义?这就像在房子交付后将脚手架放在房子周围.
我不是在寻找单元测试的原因,或者是否/何时使用TDD.我只是好奇为什么在代码完全实现后应该保留单元测试,而不是将这些测试作为临时手段,并在不需要支持开发人员时删除.
编辑
在对CodeGnome发表评论后,我意识到我应该强调这只是关于TDD测试,这些测试主要是为了让开发人员指向正确的方向.脚手架可以这么说.
我很欣赏所有的评论.
阅读完所有消息后,我可以得出两件事: