我已经创建了大量方法来帮助我在Visual Studio 2010中执行单元测试断言。我还启用了“双击失败或不确定的单元测试结果显示测试中的失败点”选项在测试执行选项中。我的问题是,使用这些辅助方法,我希望失败的地方是调用我的帮助器方法的堆栈帧,而不是在辅助方法中抛出的异常。
显然,我可以执行“ShowDetails”并在堆栈中点击更高,但这几乎可以抵消使用帮助方法保存的任何时间。
我尝试在我的方法上使用各种[Debugger*]
属性但没有成功。
以下是一些示例代码来说明我的问题。
public void MyTest()
{
// ACT
var res = DoSomething();
// ASSERT
AssertDateRange(res, TimeSpan.FromDays(7));
}
public static void AssertDateRange(DateTime value, TimeSpan range)
{
var difference = DateTime.Now.Subtract(value);
if (Math.Abs(range.TotalMilliseconds) - Math.Abs(difference.TotalMilliseconds) < 0)
{
throw new AssertFailedException("DateTime was not within the expected range from now.");
}
}
我希望双击将我放在MyTest方法中的方法调用上,而现在它让我在AssertDateRange方法中抛出。