如何在测试中突破到失败点时忽略用户代码?

时间:2012-10-22 19:48:50

标签: visual-studio-2010

我已经创建了大量方法来帮助我在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方法中抛出。

0 个答案:

没有答案