@h1_0ne

Как получить информацию о том, вызвано ли на данный момент исключение?

Делаю тесты UI средствами WinAppDriver. Когда на форме возникает исключение, то тесты считаются пройденными. Есть какой-то способ проверить, вызвано ли исключение на форме или нет? Либо может быть есть другие фреймворки, которые при аналогичной ситуации вызвали бы исключение?
[TestMethod]
        public void TestMethod1()
        {
            session.FindElementByAccessibilityId("button1").Click();
        }


private void button1_Click(object sender, EventArgs e)
        {
            throw new Exception();
        }


5d962dbdbce0d070452006.png5d962deb7a803807758656.png
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 2
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
[TestMethod]
public void TestMethod1()
{
    var button = session.FindElementByAccessibilityId("button1");
    try
    {
        button.Click();
    } catch(Exception) {
        // Тест пройден.
        return;
    }

    throw new Exception("Тест не пройден.");
}
Ответ написан
@Lelushak
Никак. У вас случается unhandled exception, выброшенный в другом (UI) потоке.

Единственный способ, — ловить исключение в обработчике click, а затем сохранять в какую-нибудь переменную информацию об этом или даже само исключение. А затем обращаться к этой переменной из теста.

Но вообще-то так делать нельзя. Юнит-тесты не должны взаимодействовать с UI, они предназначены для тестирования модулей. Ваша задача решается через интеграционное тестирование.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы