<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
如果你懒得去看那些很长很长的例子,不妨看看下面这个小例子,这个例子能让你对测试驱动开发有一个直观的了解.
最起码让你知道测试驱动开发是一种开发技术而不是一项测试的技术
Fibonacci 数列,呵呵可能有不少人都忘了怎么编的了吧,那正好带你看看tdd的威力
测试驱动开发,那么测试先行是必然的了.
第一个测试来了
![](https://i-blog.csdnimg.cn/blog_migrate/8c309221c3c277e6b7661667e251ee0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d71168af5eeeb41c3a21f10dc75aa2ff.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0ba9a566019fccec2405613a4d6e7858.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a7583bf8229731fd2c3b4c05ca1f24f8.gif)
Fibonacci 数列的第一个数是0,人人都知吧,好了现在测试代码有了,那么我们先运行一下测试吧.
失败,报错,可恶的red进度条.
显然,因为我们还甚至还没有Fib()这个函数呢.
那么让我们赶紧让这个测试通过吧.
![](https://i-blog.csdnimg.cn/blog_migrate/8c309221c3c277e6b7661667e251ee0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d71168af5eeeb41c3a21f10dc75aa2ff.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0ba9a566019fccec2405613a4d6e7858.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a7583bf8229731fd2c3b4c05ca1f24f8.gif)
ok!!! green 这将是你在tdd中最喜欢看到的颜色(多看绿色对我们的视力也是好事)
第二个测试
![](https://i-blog.csdnimg.cn/blog_migrate/8c309221c3c277e6b7661667e251ee0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d71168af5eeeb41c3a21f10dc75aa2ff.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0ba9a566019fccec2405613a4d6e7858.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a7583bf8229731fd2c3b4c05ca1f24f8.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/8c309221c3c277e6b7661667e251ee0b.gif)
那我们赶紧让它也通过吧
![](https://i-blog.csdnimg.cn/blog_migrate/8c309221c3c277e6b7661667e251ee0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d71168af5eeeb41c3a21f10dc75aa2ff.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0ba9a566019fccec2405613a4d6e7858.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a7583bf8229731fd2c3b4c05ca1f24f8.gif)
通过了!
从测试代码中我们看到了
AssertEquals(0,Fib(0));
AssertEquals(1,Fib(1));
重复!不仅在源代码,就是在测试代码中,我们也要避免重复!!(测试代码中也会出现模式哦~~)
这里,我们用一个最简单的方法避免重复,用表驱动.
我们开始改写测试代码.
![](https://i-blog.csdnimg.cn/blog_migrate/8c309221c3c277e6b7661667e251ee0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d71168af5eeeb41c3a21f10dc75aa2ff.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0ba9a566019fccec2405613a4d6e7858.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/56427964832ac55b2d3fe6f179fcc6d7.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d3c639c9078b6f7c2fbd4d6be61cc188.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a7583bf8229731fd2c3b4c05ca1f24f8.gif)
这样添加测试代码就容易多了.
测试代码改过了!!!小心哦,让我们再运行下,哦还能通过,那我们就可以放心继续了.
![](https://i-blog.csdnimg.cn/blog_migrate/8c309221c3c277e6b7661667e251ee0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d71168af5eeeb41c3a21f10dc75aa2ff.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0ba9a566019fccec2405613a4d6e7858.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/56427964832ac55b2d3fe6f179fcc6d7.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d3c639c9078b6f7c2fbd4d6be61cc188.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a7583bf8229731fd2c3b4c05ca1f24f8.gif)
oh! 失败了,赶快解决它
![](https://i-blog.csdnimg.cn/blog_migrate/8c309221c3c277e6b7661667e251ee0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d71168af5eeeb41c3a21f10dc75aa2ff.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0ba9a566019fccec2405613a4d6e7858.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b41eeffec85297ffe10f2cfb47c93caa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/578fc8990a25ace5a8c5fd7b75b5e628.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a7583bf8229731fd2c3b4c05ca1f24f8.gif)