.net 数据访问集成测试…您是如何做到的?
我可以看出,您正在事务中进行战术测试,以便在测试后回滚 我个人从头开始,为测试创建表,然后删除它们。另一种常见的技术是将数据库恢复到已知状态——尽管我认为这表明如果测试依赖于数据库中的大量状态,那么测试范围太广 我是为PHP写这篇文章的,但我更经常在.NET中工作.net 数据访问集成测试…您是如何做到的?,.net,testing,tdd,continuous-integration,integration,.net,Testing,Tdd,Continuous Integration,Integration,我可以看出,您正在事务中进行战术测试,以便在测试后回滚 我个人从头开始,为测试创建表,然后删除它们。另一种常见的技术是将数据库恢复到已知状态——尽管我认为这表明如果测试依赖于数据库中的大量状态,那么测试范围太广 我是为PHP写这篇文章的,但我更经常在.NET中工作 问题是什么?如何测试上面的代码?你能提供一些你想要实现的细节吗?你能给我们一些更多的信息吗。你的问题太夸张了。查看有关如何提出好问题的提示。这会增加你得到答案的机会。 public class RollBack : OnMethodB
问题是什么?如何测试上面的代码?你能提供一些你想要实现的细节吗?你能给我们一些更多的信息吗。你的问题太夸张了。查看有关如何提出好问题的提示。这会增加你得到答案的机会。
public class RollBack : OnMethodBoundaryAspect // or another AOP for meth interception
{
public override void OnEntry(MethodExecutionEventArgs eventArgs)
{
try
{
ServiceConfig cfg = new ServiceConfig();
cfg.Transaction = TransactionOption.RequiresNew;
cfg.TrackingAppName = "Application Unit Tests";
cfg.TransactionDescription = "Application Unit Tests Transaction";
cfg.TransactionTimeout = 0x2710;
ServiceDomain.Enter(cfg);
}
catch (Exception exception)
{
Console.WriteLine("Could not enter into a new transaction:\n" + exception);
}
}
public override void OnExit(MethodExecutionEventArgs eventArgs)
{
try
{
if (ContextUtil.IsInTransaction)
{
ContextUtil.SetAbort();
}
ServiceDomain.Leave();
}
catch (Exception exception)
{
Console.WriteLine("Could not leave an existing transaction:\n" + exception);
}
}
}