我一直试图让更多的TDD。目前在控制台应用程序中保留了很多简单的Debug.Asserts
。从对象测试事件
我想完成的部分测试是确保从对象中提取事件的次数正确,因为客户端代码将取决于这些事件。因此,我开始考虑如何测试事件被提出,以及我如何跟踪它们。所以我想出了一个监视器“模式”(如果你可以称之为)。这基本上是一个在构造函数中接受测试类型的对象的类。
然后将事件连接到监视器,并创建委托,在事件引发时对这些委托进行计数和记录。
然后我回到我的测试代码和做一些事情,如:
bool Test()
{
MyObject mo = new MyObject();
MyMonitor mon = new MyMonitor(mo);
// Do some tests that should cause the object to raise events..
return mon.EventCount == expectedCount;
}
这工作得很好,当我故意打掉我的代码,测试失败,因为预期,但我不知道,这是太很多“自由形式”的测试代码(即没有支持测试的代码)?
更多的想法
- 你测试的事件?
- 如何测试事件?
- 你认为上述有任何漏洞/改进空间?
感谢所有的输入! ^_^
好一点,提出的案件是相当简单的。在某些检查中,如果满足某些条件,它只会增加计数。 – 2008-12-02 14:40:45