Использование TestStack.White для проверки элементов управления, которые запускают фоновую работу - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь написать тестовый пример пользовательского интерфейса для приложения WPF. Это состоит из текстового поля поиска. При вводе в текстовое поле поиск входной строки выполняется в фоновом потоке.

Это мой основной код:

public void TestMethod1()
{
    var applicationDirectory = @"C:\projects\dev\source\bin\Debug";
    var applicationPath = Path.Combine(applicationDirectory, "Some.exe");

    Application application = Application.Launch(applicationPath);
    Window mainWindow  = application.GetWindow("Window Title");

    mainWindow.Get<TextBox>().Text = "testing things out";

    Assert.IsTrue(true);

    mainWindow.Dispose();
    application.Dispose();
}

Теперь на строке, где я установил свойство Text, начнется фоновая работа, и фреймворк выдаст исключение:

TestStack.White.UIItems.UIActionException: окно не отвечает, после ожидания 50000 мс

По сути, фреймворк ожидает заданное количество времени, а затем выдает исключение, поскольку фоновая работа не завершена вовремя.

Я проверил документацию , и в ней упоминается обходной путь, но для этого потребуется изменить код приложения. Так как это унаследованное приложение, я не хочу менять код (мы находимся в процессе перехода, поэтому хотим, чтобы изменения кода были ограничены).

Кажется, это общая проблема, но не удалось найти решение? Есть идеи?

UPDATE Следующий код работает, хотя все еще не близко к решению оригинальной проблемы.

mainWindow.Get<TextBox>().BulkText = "testing things out";
...