Я сейчас перевожу свои UI-тесты в CodedUI Tests.Прямо сейчас я сталкиваюсь со следующей проблемой:
В моем UnitTest я дважды вызываю метод, расположенный в моем UIMap.Метод содержит фрагмент, который проверяет, открыто ли окно MessageBox, и имеет логический параметр, который переключает, нажимать ли кнопку подтверждения или отмены в окне сообщения.Окно сообщений никогда не изменяется (т.е. его заголовок, текст, кнопки).
public void MyUiMethod(bool p)
{
//...variable initialization...
ApplicationUnderTest app = ApplicationUnderTest.Launch(@"some.exe");
try
{
//... get to the point that triggers the MB to show...
Assert.AreEqual(true, uImessageBoxWindow.Exists);
if (p)
Mouse.Click(uIConfirmButton, new Point(39, 16));
else
Mouse.Click(uICancelButton, new Point(49, 8));
}
finally
{
app.Close();
}
}
Первый вызов работает без проблем каждый раз.Во время второго вызова всплывающее окно сообщений появляется, но не может быть найдено платформой тестирования.
Критериями поиска, которые CodedUiTestBuilder назначает MessageBox, являются его имя (информация) и имя класса (# 32770).
У кого-нибудь есть намеки на то, что здесь может пойти не так?Это какой-то недостаток доступности в элементе управления MessageBox?
С уважением,
Seb