测试驱动开发 - WPF

发布于 2024-12-02 11:00:08 字数 138 浏览 0 评论 0原文

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

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

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

I'd like to shift my code to a more test driven development model, but am unsure the best way to do this for the presentation layer.

Other layers behave like a black box where you can give input and expect output.

The presentation layer is not so simple. Are there any programs, guides, or practices to help with test driven xaml development.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神魇的王 2024-12-09 11:00:08

好吧,我忍不住发布答案。接受的答案中显示的方法至少可以说是一个维护陷阱。

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

编写 UI 测试并不是答案(对于重要的 GUI),因为它们

  • 不可读。 UI 测试退化为操作 UI 元素的冗长晦涩的脚本。由于如何掩盖了测试的内容,因此很难看出正在测试什么。如果你看不懂它,一旦它坏了,你就需要更长的时间来修复它。
  • 慢的。您每单位时间运行的测试会更少。
  • 脆。 Gui 的更改可能会破坏许多 GUI 耦合测试,即使功能不会。更多测试维护。
  • 不稳定。您必须投入一些时间来稳定测试,以便它们每次都能可靠地运行。引入延迟或轮询以显示某些内容。

Well I cannot refrain from posting an answer. The approach shown in the accepted answer is a maintenance-trap to say the least.

Move your GUI development to the MVP / MVVM model. WPF is MVVM friendly.
Make thin GUIs (with minimal code/logic) that delegate/sync with a Presenter class. This means that you can write unit tests against the presenter and test a significant portion of your code without the UI. Write only a handful of UI tests and perform the majority of your functional testing using the presenter class.

Writing UI tests isn't the answer (for non-trivial GUIs) because they are

  • unreadable. UI tests degenerate into long arcane scripts that are manipulating UI elements. It is difficult to see what is being tested since the how obscures it. If you can't read it, it'll take you longer to fix it once it breaks.
  • slow. You'd be running fewer tests per unit of time.
  • brittle. A Gui change can break a number of your GUI-coupled tests even though the functionality isn't. More test maintenance.
  • unstable. You'd have to invest some amount of time in stabilizing the tests so that they run reliably each time. Introducing delays or polling for some things to show up.
殤城〤 2024-12-09 11:00:08

以下是微软关于该主题的一些内容。有关更多信息,请参阅评论中的链接。
http://msdn.microsoft.com/en-us/magazine/dd483216.aspx

Here is something from microsoft on the topic. For further information, see the link in the comments.
http://msdn.microsoft.com/en-us/magazine/dd483216.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文