【问题标题】:Unit-testing and boost::asio单元测试和 boost::asio
【发布时间】:2012-06-30 12:51:10
【问题描述】:

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

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

【问题讨论】:

    标签: c++ unit-testing boost xmpp boost-asio


    【解决方案1】:

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

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

    HTH

    托尔斯滕

    【讨论】:

    • 嗨,我也一直在研究单元测试 boost::asio 并找到了你的 test_socket.h,如果你不介意,我会借它:)
    • @dutt 欢迎您使用它。看看github.com/TorstenRobitzki/Sioux/tree/master/source/asio_mocks,我试图把它放在一个更可重用的形式中。
    • 谢谢,我去看看 :) 我在这里做了一些小的修改以满足我的需要。
    • @TorstenRobitzki 您可能认为您告诉人们使用该文件,但当前版本在顶部显示:// 版权所有 (c) Torrox GmbH & Co KG。版权所有。 // 请注意,此文件的内容是保密的或受法律保护。 // 禁止对此处包含的信息进行任何未经授权的复制或未经授权的分发。也许不同的版权许可是合适的?
    • 任何删除此版权文本的拉取请求都将被接受。
    猜你喜欢
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多