c# - 为什么仅在调试测试时,单元测试中的 Form.CanFocus 为 false?
问题描述
在单元测试中, aForm
的属性在调试测试和运行测试时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();
};
据我所知,不应该检查直接 UI 方法,但我仍然对上述情况感到好奇。
更新:我检查并在调试模式下断言的那一刻,f
具有 properties IsHandleCreated
,Visible
并Enabled
设置为true
. 我还看到在调试测试时,窗口实际上是不可见的。
情况是我正在为应该集中控制的方法进行单元测试。仅当创建控件 ( ) 并且其属性设置为时,该方法才使用控件自己的属性HasFocus
(将其设置为 ) 。我想知道,在最好的情况下,这个方法的单元测试应该包括什么。true
!= null
IsDisposed
false
解决方案
推荐阅读
- java - 使用 xml 解析时显示 null 的文档
- reactjs - 组件不会从 mapStateToProps 渲染
- r - 密度图 - 如何改变 x 轴上的频率
- python - 防止 predict_generator 改组批次
- android - 如何以编程方式使用 OutlineBox 创建 TextInputLayout
- mongodb - 在 mongoDb 4.xx 中绑定多个 IP
- android-studio - 遇到 Android 版本构建错误的问题
- json - Typescript Date 对象与 Json 的区别
- reactjs - TypeError:无法读取 null 的属性“componentDidMount”
- sql - 如何强制视图使用特定索引?