1

我正在为 Windows Phone 8 应用程序使用 WPToolkitTestFx 单元测试框架。我在执行时遇到错误Assert.Fail()Assert.IsFalse(true).

Microsoft.VisualStudio.QualityTools.UnitTesting.Phone.DLL 中出现了“Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException”类型的第一次机会异常

上述错误的任何解决方案。

这里是源代码

    [TestMethod]
    [Asynchronous]
    [Description("Test2: Sample asynchronous test")]
    public void Test2()
    {
        // this test executes asynchronously
        Deployment.Current.Dispatcher.BeginInvoke(() =>
        {
            // ... and then fails

            Assert.IsFalse(true);

            EnqueueTestComplete();
        });
    }

谢谢, 拉古

4

2 回答 2

0

遵循http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/20/windows-phone-toolkit-overview.aspx中的示例代码时,我可以看到类似的内容。

出现异常是正常的,见:

A first chance exception of type 'Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException' occurred in Microsoft.VisualStudio.QualityTools.UnitTesting.Phone.DLL

此外,如果调试器连接到您的设备/模拟器,调试器将中断,因此您可以找出测试失败的位置。

    private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
    {
        if (Debugger.IsAttached)
        {
            // An unhandled exception has occurred; break into the debugger
            Debugger.Break(); // <- !!! application will stop in debugger here !!!
        }
    }

但是,如果您继续项目(按 F5),或者没有在调试器下运行,您将看到应用程序继续运行并且不会退出。

这使您可以查看测试结果。

于 2013-03-21T13:13:43.437 回答
-1

问题,断言失败是您测试的正常部分吗?如果是这样,您需要指示框架预期会发生此类异常

[TestMethod, Asynchronous]
[Description("Test2: Sample asynchronous test")]
[ExpectedException(typeof(AssertFailedException))]
public void Test2()
{
    // this test executes asynchronously
    Deployment.Current.Dispatcher.BeginInvoke(() =>
    {
        // ... and then fails

        Assert.IsFalse(true);

        //TestComplete();
    });
}

另外我注意到您将方法标记为异步,但您没有使用异步调用方法,EnqueueDelay(TimeSpan), EnqueueCallback(), EnqueueTestComplete()这些方法使方法功能异步。

于 2013-03-08T17:44:22.750 回答