Winforms System.Windows.Forms中的单元测试数据绑定
我在对表单进行单元测试时遇到了一个问题 问题在于,当表单不可见时,数据绑定根本不起作用 下面是一些示例代码:Winforms System.Windows.Forms中的单元测试数据绑定,winforms,unit-testing,data-binding,Winforms,Unit Testing,Data Binding,我在对表单进行单元测试时遇到了一个问题 问题在于,当表单不可见时,数据绑定根本不起作用 下面是一些示例代码: Data = new Data(); EdtText.DataBindings.Add( new Binding("Text", Data, "Text", false, DataSourceUpdateMode.OnPropertyChanged)); 后来: Form2 f = new Form2(); f.Data.Text = "Test 1"; f.
Data = new Data();
EdtText.DataBindings.Add(
new Binding("Text", Data, "Text", false,
DataSourceUpdateMode.OnPropertyChanged));
后来:
Form2 f = new Form2();
f.Data.Text = "Test 1";
f.EdtText.Text = "Test 2";
f.Data.Text = "Test 3";
最后,组件的值为f.EdtText.Text=“测试2”和f.Data.Text=“测试3”,但预期值应同时为“测试3”
有什么建议吗?我想你回答了你自己的问题——为了发生属性更改事件(
TextChanged
),必须显示控件。您的单元测试可以执行如下操作:
Form2 f = new Form2();
f.Show();
Thread.Sleep(2000); // give the Form time to open
f.Data.Text = "Test 1";
Assert.AreEqual("Test 1", f.EditText.Text);
f.Close();
您可能不想公开表单组件,而是想使用来获取表单控件:
TextBoxTester tb = new TextBoxTester("EditText1");
Assert.AreEqual("Test 1", tb["Text"]);