我一直在用我的Silverlight代码编写NUnit和Moq一段时间的单元测试。我一直遇到的一个问题与DependencyObjects有关。在Silverlight单元测试中处理DependencyObjects
如果有任何东西是从DependencyObject派生的,那么我不能在我的测试中实例化它。例如,MouseEventArgs派生自DependencyObject。如果我的代码使用了这些参数,我不能创建参数有几个原因......其中之一就是它是一个DependencyObject。
据我所知,DependencyObject的基本构造函数正试图使用一些不存在的静态,除非整个Silverlight系统启动并运行。任何派生自DependencyObject的类的构造都会引发异常。游民。
我不使用Silverlight Unit Test Framework,因为它实际上不是单元测试,需要一个UI。我运行需要真正的无头单元测试。
总而言之,我所想到的最好的方法是包装这些对象并为它们提供像ITimelineMarker
这样的接口,并且我给它们扩展方法来实现它:timelineMarker.ToInterface()
。这很好,我可以嘲笑他们......但我想知道:
有没有人想出了一个更好的方法来处理Silverlight的单元测试DepencencyObjects?
“派生自DependencyObject的任何类的构造抛出异常” - 什么是异常类和错误消息? – 2009-05-08 12:22:04