@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
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 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, они предназначены для тестирования модулей. Ваша задача решается через интеграционное тестирование.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
BRIO MRS Казань
от 70 000 до 120 000 ₽
Frostgate studio Новосибирск
от 60 000 до 100 000 ₽
28 сент. 2020, в 00:10
15000 руб./за проект
27 сент. 2020, в 21:54
15000 руб./за проект