Как получить информацию о том, вызвано ли на данный момент исключение?
Делаю тесты UI средствами WinAppDriver. Когда на форме возникает исключение, то тесты считаются пройденными. Есть какой-то способ проверить, вызвано ли исключение на форме или нет? Либо может быть есть другие фреймворки, которые при аналогичной ситуации вызвали бы исключение?
[TestMethod]
public void TestMethod1()
{
session.FindElementByAccessibilityId("button1").Click();
}
h1_0ne, все верно, теперь тест не пройден. У вас в задании написано: для прохождения теста должно быть исключение по клику. Нет исключения по клику — тест не пройден.
P.S. Добавил описание в код.
Александр Юдаков, Независимо от того, вызывает ли кнопка исключение или нет, тест считается не пройденным. Событие клика он отрабатывает и в блок catch не переходит
Александр Юдаков,
System.Exception: Выдано исключение типа "System.Exception".
в DesktopTest.Form1.button1_Click(Object sender, EventArgs e) в C:\Users\H10ne\source\repos\DesktopTest\DesktopTest\Form1.cs:строка 22
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Никак. У вас случается unhandled exception, выброшенный в другом (UI) потоке.
Единственный способ, — ловить исключение в обработчике click, а затем сохранять в какую-нибудь переменную информацию об этом или даже само исключение. А затем обращаться к этой переменной из теста.
Но вообще-то так делать нельзя. Юнит-тесты не должны взаимодействовать с UI, они предназначены для тестирования модулей. Ваша задача решается через интеграционное тестирование.