В модульном тесте свойство 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
.Я хотел бы знать, в лучшем случае, из чего должен состоять модульный тест для этого метода.