0

我正在使用白色自动化 API 来测试 silverlight 应用程序,但是当 silverlight 中发生未处理的异常时,我不知道如何将其报告回单元测试或检查白色 api 以查看是否存在异常. 有人有办法做到这一点吗?

4

2 回答 2

0

IE 的“页面错误”警告是一个 GUI 元素,因此您应该能够通过白色 api 检查它。找到 IE 状态栏,查询状态消息,如果 message == 'error on page',则在测试中记录错误。下面的示例代码用于检查状态栏上的文本。

app = Application.Attach(Process.GetProcessesByName('iexplore')[0])
win = app.GetWindows()[0]
statusBar = win.Get(SearchCriteria.ByAutomationId('StatusBar'))
for item in statusBar.Items:
    print item.Id, String.Format("'{0}'", item.Text)

输出

StatusBar.Pane0 'Done'
StatusBar.Pane1 '' 
StatusBar.Pane2 ''
StatusBar.Pane3 '' 
StatusBar.Pane4 ''
StatusBar.Pane5 '' 
StatusBar.Pane6 ''
StatusBar.Pane7 'Internet'
于 2010-02-04T14:30:11.353 回答
0

我不熟悉白色测试框架,但您可能可以在测试中执行以下操作:

[Test]
public void MyTest()
{
    bool unhandledExceptionFired = false;
    Application.Current.UnhandledException += (s,e) => unhandledExceptionFired = true;

    //test code....


    Assert.IsFalse(unhandledExceptionFired);
}

就像我说的那样,我没有使用提到的特定测试框架,但是这样的东西应该可以工作。或者你是否遇到了一些阻止它工作的问题?

于 2010-02-04T00:13:17.363 回答