Почему Form.CanFocus ложно в модульном тесте только при отладке теста? - PullRequest
0 голосов
/ 28 января 2019

В модульном тесте свойство Form CanFocus имеет значение false при отладке теста и true при запуске теста.

Код теста упрощенниже:

// Arrange
Form f = new Form();

// Act
f.Show();
Application.DoEvents();

// Assert
// The following LOC:
// Debugging the test? Fails. Running the test? Passes.
Assert.IsTrue(f.CanFocus);

Я также пытался поместить эти строки прямо над f.Show():

f.Shown += delegate (object sender, EventArgs e)
{
    f.Activate();
};

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

Обновление: Я проверил, и на момент подтверждения в режиме отладки, f имеет свойства IsHandleCreated, Visible и Enabled установлен на true.Я также вижу, что при отладке теста окно фактически не отображается.

Ситуация такова, что я выполняю модульный тест для метода, который должен сфокусировать элемент управления.Метод использует собственное свойство элемента управления HasFocus (устанавливает его на true) только тогда, когда элемент управления создан (!= null), а его свойство IsDisposed установлено на false.Я хотел бы знать, в лучшем случае, из чего должен состоять модульный тест для этого метода.

...