2010-07-16 58 views
0

因此,我试图将自己转变为更多的测试和行为驱动的方法来实现我的发展。这对我来说很好,而且迄今为止我已经使用过的几个项目中,我看到了很好的结果。如何以TDD方式实现接口

我目前的项目是一个基于FUSE的文件系统 - 我想添加一些基本的文件系统访问功能,所以FUSE看起来很合适。我真正需要做的是实现一组适合适当界面的函数,并将其合理地包装起来,然后继续。

但是,先测试一下,我提醒自己。我已经写了一套黄瓜功能来展示整体应用程序应该如何工作的基本期望,所以现在是时候开始测试内部。现在

,我可以只写为每个我需要编写该接口的功能单元测试,然后拿到编码接口 - 但似乎并不过分测试 - 驱动给我。确实存在测试,但界面真的是什么东西。

我该怎么处理这个错误?还是我期待太多?

如果您认为这应该是社区维基,请给我一个“什么 - 什么” - 我甚至不能决定这个是否有是一个正确的答案。

回答

1

第1步。什么是接口必须做的一件事?一件事。

第2步。你将如何证明它做到这一点?

第3步。编写一个测试来证明接口真的做到了这一件事。

第4步。运行测试 - 它会失败。你还没有写实际的界面。

第5步。编码接口。

第6步。测试通过。

接下来的事情,接口必须做。

这与您已经设计的功能没有多大关系。这完全集中在接口必须有外部可见功能。可能会发现你的功能是正确的。或者你可能会过度设计这些功能。或者设计不足。重点是从组件必须做的事情和测试证明它必须做什么。

0

我想通过基本的文件系统访问添加一些功能,以便FUSE似乎是一个不错的选择

这是很难发展熔丝FS。两个主要问题是非常困难的调试和多线程。我也有(现在有)测试我的FS的问题。也许inotify将满足您的要求。

+0

我使用[Check](http:// check。sourceforge.net/)逐一测试我的保险丝回调(用我的模拟'fuse_get_context()')。 – rampion 2010-07-22 13:48:41