代码测试的简单框架(第一部分)

ZDNet软件频道 时间:2003-06-23 作者:翻译:Java研究组织-郭晓刚 |  我要评论()
本文关键词:cpptips
写完代码后,你当然要测试它。有许多种方法来测试代码:你可以在你的代码中加些断点,或者观察实际发生的情况并和你预计的结果相比较,又或者写些测试程序等等。
本文译自Builder.com,未经许可请勿转载 写完代码后,你当然要测试它。有许多种方法来测试代码:你可以在你的代码中加些断点,或者观察实际发生的情况并和你预计的结果相比较,又或者写些测试程序等等。

给代码写测试通常是测试代码的最好方法。因为写出来的测试可以一遍又一遍地执行。当你修改了实现,你可以再次运行测试来检查一下你是否引入了任何bug。这种方法可以将你从调试中拯救出来,并引领你生产出具有更低错误倾向的代码。

作为一个一般的方针,在开发你的测试的时候,我们建议你不要把结果打印到屏幕上;而是,根据输入数据,用asserts创建一个后置条件指明期望得到哪些输出数据。

如果你在运行测试时把结果打印到了屏幕上,开始时你会去分析这些结果。然而,随着时间延长,你会越来越不注意这些打印到屏幕上的数据。即使数据指出了一个错误,你也可能不会意识到。

此外,如果别的人试着运行测试,他们不得不首先弄明白这些打印出来的数据是什么意思,这可能要花不少时间。反过来,如果你用了asserts,人们就只要去运行你的测试。如果发生了错误,他们会被提示在哪一行发生了错误,他们就可以去修正它。

这儿是一个测试例程的例子:

#include <string>
#include <assert.h>

// 整理一个字符串的前导和追尾空白,
// 返回整理后的字符串

std::string trim_spaces( const std::string & str)
{
    /* trim_spaces 的实现*/
}

void testTrimSpaces()
{
    assert( trim_spaces( "  abc") == "abc");
    assert( trim_spaces( "def      ") == "def");
    assert( trim_spaces( "   this is a test    ") == "this is a test");
    assert( trim_spaces( "") == "");
    assert( trim_spaces( "       ") == "");
}

在本文的下一部分,我们将向你展示怎样标准化和运行你的测试。

 



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134