单元测试 - Winforms/C# 中的被动视图

发布于 2024-10-16 21:02:27 字数 103 浏览 7 评论 0原文

我设计了一个 Winforms 应用程序,其中视图没有到模型的链接。它只知道控制器。控制器创建视图并维护所有状态并相应地更新视图。如何为控制器类编写单元测试(视图在控制器类的构造函数中创建)。

I've designed a Winforms App where the View has no link to the Model. It only knows about the Controller. Controller creates the view and maintains all the state and updates the view accordingly. How do I write Unit Tests for Controller class (view gets created in the constructor of the Controller class).

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

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

发布评论

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

评论(1

心的憧憬 2024-10-23 21:02:27
  • 提取视图的接口 - 比如说 IView。
  • 接下来,不要在 Controller.ctor 中隐式创建具体视图,而是将其显式传入(作为 ctor 参数,然后存储在 _view 字段中)。 ctor 参数的类型应该是 IView 类型。

现在,在您的测试中,您可以传入假视图(或模拟)并验证是否在视图上调用了正确的方法。
在您的生产代码中,传入真实的视图对象。

  • Extract an interface for the View - say IView.
  • Next instead of creating a concrete view implicitly in Controller.ctor, have it explicitly passed in (as a ctor argument which is then stored in a _view field). The type of the ctor parameter should be of type IView.

Now in your tests, you can pass in a fake view (or a mock) and verify that the right methods are called on the view.
In your production code, pass in the real view object.

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