我已经阅读/观看过TDD& BDD最近我真的很想掌握它。我是一名开发人员,只编写代码然后从外部测试(就像我们一直开始的那样)。问题似乎在于使用TDD启动和运行。我想创建一个简单的Winform应用程序,我想在其中显示一些可以说产品的列表。我只是不知道从哪里开始,我应该先为控制器编写测试吗?控制器需要参考视图和服务等等。 ASP.Net MVC是为测试而构建的,因此它很容易上手,但Winforms真的很痛苦。请给我一些在Winforms中显示TDD的视频(最常用)。
我看过很多视频,告诉你测试一个类或功能,但是你如何测试不支持测试的UI?
简而言之,我想知道是否有人已经做了一段时间的TDD,怎么样 他/她在Winforms中做到了吗?
我编写了大量代码,我只是因为卡住而删除了,请帮助!
答案 0 :(得分:3)
以下是我为任何类型的UI所做的工作,无论是Web或Winforms,WPF还是Swing in Java,甚至是将被其他系统使用的Web服务接口。
您的控制器现在没有任何行为;只是静态数据 - 但它有适合用户界面的API,现在你知道用户界面想要如何使用它。
那些是你的单元测试!如果您知道您的控制器需要其他一些类来进行协作,那么您也可以嘲笑它们。
一旦您的协作者被嘲笑,您就已经知道控制器想要如何使用它们。同样,您已经为这些协作者提供了API,因为控制器正在使用它们。
当我们谈论BDD中的“从外到内”时,这就是我们正在做的事情。
答案 1 :(得分:2)
我也是TDD的新手,和我一样,我正在努力学习。以下是我在搜索过程中想出的内容,也许它对您有所帮助:
祝你好运。
答案 2 :(得分:0)
控制器是一个很好的起点。将View public api解压缩到接口,使用Mocking Framework测试控制器与该接口的交互。您也可以对服务层执行相同的操作。 此外,在将测试添加到UI层之前,我将采用自下而上的方法进行此应用程序并对较低级别的层进行单元测试。在UI层,我将使用BDD框架编写一组验收测试,并使用模拟框架使这些测试变得轻量级并减少测试次数。
祝你好运!