作为TDD的初学者,我试图编写一个测试,假设在属性网格(PropertyGrid)上更改了属性的值(C#、WinForms、.NET 3.5)。
在属性网格上更改对象的属性不会触发事件(因为它是一个UI引发的事件,所以我可以理解为什么更改所有者对象可能对其不可见)。
我在TreeView中使用SelectedNode属性时也遇到了相同的问题,无法触发AfterSelect事件。
我可以编写一个函数,让我的单元测试调用它来模拟UI事件的代码,但这将使我的代码看起来混乱。除非我把它设为public,否则我必须在我正在测试的对象的同一项目中或甚至同一类中编写所有测试(再次确认为混乱)。这对我来说似乎很丑陋,并且会遭受可维护性方面的问题。
有没有一种惯例来进行这种基于UI的单元测试呢?
在属性网格上更改对象的属性不会触发事件(因为它是一个UI引发的事件,所以我可以理解为什么更改所有者对象可能对其不可见)。
我在TreeView中使用SelectedNode属性时也遇到了相同的问题,无法触发AfterSelect事件。
我可以编写一个函数,让我的单元测试调用它来模拟UI事件的代码,但这将使我的代码看起来混乱。除非我把它设为public,否则我必须在我正在测试的对象的同一项目中或甚至同一类中编写所有测试(再次确认为混乱)。这对我来说似乎很丑陋,并且会遭受可维护性方面的问题。
有没有一种惯例来进行这种基于UI的单元测试呢?