5

我最近观看了J. B. Rainsberger的Integration Tests are a Scam,现在正在寻找更多关于此主题的资料。我不得不说,我对我们做错了多少事情感到震惊(即我们应该进行单元测试时进行集成测试),对Rainsberger描述的概念感兴趣,但也对如何应用它们感到困惑。我想有更多的描述协作测试和合同测试,但我不知道从哪里开始。删除“集成测试骗局” - 了解协作和合同测试

是卡在了我的脑海里唯一的东西是4个问题的测试,需要问:

A面:

Do I ask the right question? 
Can I deal with the answer? 

B面:

Can I answer a question? 
Do I answer correctly? 

但我该如何将这个应用程序应用于我的应用程序栈中的一些随机方法?

有没有一本书或教程或例子,在那里需要一个真实的世界的例子,并应用这些孤立的微观测试的想法?理想情况下,该示例使用Java,C#或C++。

任何文学,一般处理这些概念,并帮助我更好地理解他们,将不胜感激。

此外,如果有论坛,我可以问关于如何正确进行单元测试的更详细的问题,甚至可能重构现有的代码和后期的例子会很好。

谢谢!

+2

这似乎是在一个单一的走了很多问题的地狱OO模式。您可能想要缩小范围。也许(尽管其他人会更能判断这一点),这可能更适合Programmers SE? – Bart 2012-02-14 13:05:04

+0

是的,你说得对。我已经将它限制在有关信息资源的问题上,并在程序员部分中公布了详细信息。 – Pete 2012-02-14 13:12:26

+0

程序员SE确实 – 2012-02-14 13:12:43

回答

3

我会推荐xUnitTestPatterns - Refactoring Test Code by Gerald Meszaros,它提供了一些关于您的问题的见解,以及在各个方法级别进行测试时各种实践的好坏的很多细节。

如果您已阅读福勒重构,您会发现问题的答案不一定是黑白的,而是基于来自您和其他人的启发式经验。

+0

感谢您的提示。我对SE的程序员也一样,所以我对订购它有很好的感觉。福勒是我最近听到的很多名字(阅读“目前正在测试引导下的面向对象的软件增长”)。也许我也必须得到这个。 – Pete 2012-02-16 07:21:57

1

Rainsberger过度夸大集成测试多么的低效,证明自己的观点,在代码

DbC的是专注于形式化A和B方以外的责任和利益臻于极致的100%质量(基本正确)。就像界面的扩展。所以主要焦点变成合约本身,中间一层将告诉双方他们是否可以互相交流。

Rainsberger明确表示,到目前为止,没有明确的图书馆或语言支持,同时获得了嘲笑和B的投入以提出相同的要求,暗示它可能是某人的博士学位。

然而吉姆·韦里奇有一个很好的例子,其中合同是用于测试和双方同意这一点使用它 https://www.youtube.com/watch?v=7Yw744FMqTY