UnitTest++ 学习笔记

简介

最近没事 就看了下 unittestpp 的源码, 记录下一点东西和一个好的博客 .
笔记

自己做的UnitTestpp 的XML 图:

  1. 主要架构
    架构
  2. Reporter 部分的细致分类

Reporter

关于如何使用 unittestpp 的一个好博客 :

http://www.ultimatepp.org/srcdoc UnitTest++ UnitTestpp$de-de.html

################################
更新。

下载地址

Latest (HEAD)

#Via git:

git clone https://github.com/unittest-cpp/unittest-cpp

#Via svn:

svn checkout https://github.com/unittest-cpp/unittest-cpp/trunk unittest-cpp
#Latest release (v1.5.0)

#Via git:

git clone https://github.com/unittest-cpp/unittest-cpp
cd unittest-cpp
git checkout v1.5.0
#Via svn:

svn checkout https://github.com/unittest-cpp/unittest-cpp/tags/v1.5.0 unittest-cpp

常用宏

CHECK &CHECK_EQUAL
  • 最基本的测试宏 , 出错会打印详细的出错信息 。
  • 出错不会中断。
TEST & TEST_FIXTURE
  • TEST 注册一组测试
TEST(A_Name){
//...
}
    • A_Name需要(在同一个命名空间中)保持唯一。
    • 被包被的代码组成一组测试 , 注册进入测试队列。
  • TEST_FIXTURE 基于一个类注册一组测试
TEST_FIXTURE(fixture ,A_Name){
//...
}
    • fixture 需要是struct 或者 class 名字。
    • 这个宏必须在cpp中
    • 被包被的代码有fixture的全部权限 (其实继承了这个类)。
    • fixture必须有默认构造函数。
SUIT 定义一个命名空间。
SUIT{
TEST(A_Name1){
//...
}
TEST_FIXTURE(fixture ,A_Name){
//...
}
}

最简单头文件和测试接口

#include "UnitTest++/UnitTestpp.hpp"

UnitTest::RunAllTest();

代码实例

test.h

class TestUnitTest {
    public:
        TestUnitTest(int i, int j) : a(i) , b(j) {}
        TestUnitTest() : a(1) , b(2) {}
        int GetAddResult() {return a+b;}
        int GetSubResult() {return a-b;}
    private:
        int a, b;
};

test.cpp

#include "UnitTest++/UnitTestPP.h"
#include "test.h"

SUITE(TestSuite)
{
    TEST(SimilarlyNamedTestsInDifferentSuitesWork)
    {
        CHECK( 1 == 1);
        CHECK_EQUAL( 0 , 1);
    }

    TEST_FIXTURE(TestUnitTest, SimilarlyNamedFixtureTestsInDifferentSuitesWork)
    {
        CHECK(TestUnitTest(1,2).GetAddResult() ==3);
        CHECK(GetAddResult() == 3);
    }
}

main.cpp

#include "UnitTest++/UnitTestPP.h"

int main(int, char const *[])
{
    return UnitTest::RunAllTests();
}

输出

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种编程语言,unittest是Python自带的测试框架,可以用来编写单元测试。requests是Python中的一个HTTP库,可以用来发送HTTP请求和处理响应。结合使用这三个工具可以实现自动化测试,特别是对于API接口的测试非常方便。 ### 回答2: Python unittest和requests是两个非常常用的Python工具,分别用于测试和网络请求。 Python unittest是Python自带的测试框架,可以帮助开发人员编写和运行测试用例,确保代码的正确性和稳定性。unittest不仅可以对函数进行单元测试,还可以测试整个程序的功能。 requests是Python中最常用的HTTP请求库,用于发送HTTP/1.1请求。requests库极其简单易用,支持HTTP代理、SSL/TLS验证、cookie保持、文件上传、连接池等多种功能,是Python进行网络爬虫和API交互的首选库。 在使用requests库进行网络请求时,测试是非常重要的环节。我们可以使用unittest框架来编写单元测试,对requests库的返回结果进行断言,确保请求结果的正确性。以下是一个简单的例子: ``` import unittest import requests class TestRequests(unittest.TestCase): def test_get(self): url = 'https://www.baidu.com' response = requests.get(url) self.assertEqual(response.status_code, 200) if __name__ == '__main__': unittest.main() ``` 这段代码定义了一个继承自unittest.TestCase的测试类,并在其中编写了一个test_get方法,该方法使用requests库发送一个GET请求,并断言返回结果的状态码是否为200。最后调用unittest.main()运行测试用例。如果测试成功,我们可以在命令行中看到类似以下的输出: ``` . ---------------------------------------------------------------------- Ran 1 test in 0.269s OK ``` 以上是对Python unittest和requests的简单介绍,希望能够帮助大家了解如何使用这两个工具进行Python开发和测试。 ### 回答3: Python unittest requests是一个用于Python编程语言的测试框架,可以对Python程序进行单元测试。requests则是Python中广泛使用的HTTP库,用于发送HTTP请求和处理返回的数据。Python unittest requests的主要作用是测试requests库中的函数和方法是否能够正常工作。 在使用Python unittest requests进行单元测试时,需要先导入unittest和requests模块,并创建一个测试类。测试类中的方法就是对不同的requests函数进行测试的方法,使用assert语句检查预期输出和实际输出是否一致。测试完成后,可以使用unittest模块中的TestRunner来运行测试类。 除了单元测试外,Python unittest requests也支持其他类型的测试,如功能测试和集成测试。功能测试是测试整个Python程序的功能是否能够正常实现,集成测试则是测试多个Python程序之间的接口是否能够正常通信。在功能测试和集成测试中,Python unittest requests同样可以使用assert语句进行检查,判断程序是否按照预期结果工作。 总之,Python unittest requests能够帮助Python程序员快速进行单元测试、功能测试和集成测试,确保程序的质量和稳定性,提高开发效率。同时,Python unittest requests的使用也有利于软件开发过程的规范化和标准化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值