我进入一个项目,我们有一个大的代码库,目前它没有任何单元测试框架。我们正在处理的代码将最终运行在一个框上,交换机/路由器/防火墙。Gtest与大C和C++代码库
所以我正在研究一段需要使用Gtest进行单元测试的代码。 我有这个问题是嘲笑变量以测试函数本身。 例如,我有一个函数,它使用4个指针指向不同的对象,并使用几个全局变量。为了测试代码中的不同路径,我需要初始化因变量的几乎整个状态machien/values。 增加了复杂性,因为它在大型代码库中是真实的,我写的这个函数/方法使用了一些其他需要测试的例程/方法。每个人都需要进行单向测试,每个人都有自己的依赖关系。 我不确定我是否正在处理这个问题,或者gtest可能不是测试这种大型代码库的正确工具。
如果任何人有发言权测试经验说调用堆栈说
function A {
code
code
function B
code
code
function C
code
}
function B
{
function D
code
function E
}
function C{
code
function F
function G
code
}
像this.How做我测试所有这些功能,A-F?什么是好策略?
为什么在编写C代码时标记为C++?顺便说一下全局变量是一个坏主意 – 2014-09-10 19:06:03
代码库有C和C++两种,我知道全局变量是一个坏主意。这就是它现在的设计方法。要忍受它:) – 2014-09-10 20:18:50
测试大型/复杂代码是不容易的。您需要编写能够处理代码的测试,并且经常设置各种对象。在我工作的地方,编写测试的时间通常是实际开发真实代码所需时间的2-5倍。只有当测试代码非常简单时,这个数字才会下降到1.5或2倍。有时测试代码可能需要10次以上的原始代码写入。 – 2014-09-10 20:20:35