单元测试和boost :: asio

hat*_*ine 11 c++ boost unit-testing xmpp boost-asio

我正在使用boost :: asio编写小型XMPP服务器,我想对我的代码进行单元测试.问题:

  1. 是否有一些现成的框架?据我所知,我需要为boost :: asio类/模板提供模拟对象,我真的想自动生成这个(半).
  2. 是否可以测试并发性(例如,多个服务器连接和它们之间的消息路由)?

Tor*_*zki 7

1)我写了一个小套接字类,可以用作boost :: asio :: ip :: tcp :: socket的替代品.如果您愿意,可以查看robitzki.de/test_socket.h(test_socket.cpp,test_io_plan.h和test_io_plan.cpp).根据所使用的构造函数,套接字可以模拟不同大小的块的读/写.也可以模拟错误.如果你愿意,你可以自由使用它.

2)通过更换插座,可以为被测软件构建压力测试.这永远不会保证代码不包含错误但总比没有好;-).就个人而言,我最喜欢代码审查,以确保多线程代码包含尽可能少的错误.

HTH

托斯滕

  • @dutt欢迎您使用它.看一下https://github.com/TorstenRobitzki/Sioux/tree/master/source/asio_mocks,我试图将它放在一个更可重用的形式中. (3认同)