单元测试 – 单元测试一个大方法

遵循测试驱动开发.

我最近实现了一个需要干净界面的算法(A *).通过干净我想要的是一些属性和一个搜索方法.

我发现很难找到的是测试搜索方法.它包含大约五个步骤但我基本上被迫在一个大的进程中编写这个方法,这使得事情变得困难.

对此有什么建议吗?

编辑

我正在使用C#.不,我目前没有手头的代码.我的问题依赖于一个测试只在实现整个搜索方法后才通过 – 而不是算法中的一个步骤.我自然重构了代码,但它实现了我发现很难.

最佳答案
如果您的步骤足够大(或者它们本身就有意义),您应该考虑将它们委托给其他较小的类并测试您的类与它们之间的交互.例如,如果你有一个解析步骤,然后是一个排序步骤,然后是一个搜索步骤,那么拥有一个解析器类,一个分类器类等是很有意义的.然后你可以在每个上使用TDD.

不知道你正在使用哪种语言,但如果你在.net世界中,你可以将这些类放在内部,然后将它们暴露给你的测试类,其中“内部可见”,这将使它们隐藏起来.

如果步骤很小而且没有任何意义,那么tvanfosson的建议是要走的路.

转载注明原文:单元测试 – 单元测试一个大方法 - 代码日志