2011-08-31 150 views
3

我想将我的代码转移到更多测试驱动的开发模型,但我不确定为表示层执行此操作的最佳方法。测试驱动开发 - WPF

其他层的行为就像一个黑匣子,您可以在其中输入和期望输出。

表示层并不那么简单。是否有任何程序,指南或实践可以帮助进行测试驱动的xaml开发。

+1

你的问题已经在这里找到答案: http://stackoverflow.com/questions/3479148/tdd-type-methodology-for-wpf-silverlight – mydogisbox

+0

多谢,@mydogisbox。您是否介意将该帖子发布为答案,以便我可以将此问题标记为已回答,并为此向您提供信用? – JSWork

+0

我试过......它不会让我因为答案只包含一个链接回到stackoverflow。 – mydogisbox

回答

11

嗯,我不能拒绝发布答案。接受答案中显示的方法至少可以说是一个维护陷阱。

将您的GUI开发移到MVP/MVVM模型。 WPF是MVVM友好的。 制作与Presenter类委托/同步的瘦GUI(使用最少的代码/逻辑)。这意味着您可以针对演示者编写单元测试,并在没有UI的情况下测试代码的重要部分。只写一些UI测试,并使用演示者课程执行大部分功能测试。

写作的UI测试是没有答案的(非平凡的GUI),因为它们

  • 不可读。 UI测试退化为操纵UI元素的长时间的神秘脚本。很难看到什么正在测试,因为如何模糊它。如果您无法阅读,一旦中断就需要更长的时间才能解决问题。
  • 慢。每单位时间你会运行更少的测试。
  • 变脆。 Gui的变化可能会破坏一些GUI耦合测试,即使功能不是这样。更多的测试维护。
  • 不稳定。您必须投入一定的时间来稳定测试,以便每次可靠运行。介绍延迟或轮询某些事情来显示。
+0

为了记录您的建议目前正在付诸实践。 – JSWork

+2

@JSWork - 很高兴听到这个消息。如果有的话,面临的障碍/问题。 – Gishu

+0

@Gishu你会谈论更多关于委托给主讲者的课程吗?我有一个WPF/MVVM应用程序,我因为GUI的厚度而忽略创建单元测试。 –