如何在winforms应用程序中进行BDD

本文关键字:BDD 应用程序 winforms | 更新日期: 2024-09-20 05:02:16

我有一个场景,我必须从DB中获取一些数据,并将其显示在Win窗体应用程序的网格视图中。我为Presenter编写了一个单元测试,嘲笑我的存储库和视图。测试检查演示者是否调用了存储库的GetData()方法,然后调用了视图的Bind(data)方法。

我还有另一个针对存储库的集成测试,它验证如果数据库中有一些数据,它是否由存储库返回。

现在是测试我的观点的部分。我想不出任何方法来测试我的表单并检查它是否确实将数据绑定到了Grid视图,但这是一个单独的问题。

我的问题是,如果我想用BDD风格测试上述场景,那么在Win表单中,我没有办法测试当我调用演示者的方法时,网格视图是否填充了正确的数据。这是否意味着我不能在Win表单上进行BDD,因为我不能在不嘲笑视图的情况下验证完整的行为。如果我们模拟视图,那么BDD的整个概念就会丢失,因为参与完成场景的一个关键参与者被模拟而不是真实的。

这对我来说真的很困惑,不知道其他人是否也有过类似的问题。

如何在winforms应用程序中进行BDD

是的,在创建winform应用程序时可以使用BDD。

TestStack有一个名为White的框架。引用他们的网站:

White是一个基于Win32、WinForms、WPF、Silverlight和SWT(Java)平台。确实如此。NET基于并且不需要使用任何专有脚本语言。

由于您正在使用C#,我强烈建议您使用SpecFlow进行行为驱动的开发;它允许您以技术无关的格式为应用程序定义特性和场景,并创建样板代码来帮助您进行BDD过程。

这是一篇很好的文章,它通过一个使用Specflow进行BDD和使用White进行winform自动化的例子来工作。