首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从回调函数中对异常进行单元测试

如何从回调函数中对异常进行单元测试
EN

Stack Overflow用户
提问于 2012-11-02 17:37:31
回答 2查看 402关注 0票数 0

我正在尝试对一个函数进行单元测试,该函数会立即返回,然后通过回调函数返回实际结果。有没有人可以帮我用cppunit对这个函数进行单元测试。

例如。

MyFunction(回调){ .....

}

MyFunction立即返回成功,然后在回调函数中返回实际结果,从回调中抛出异常myexception如何进行单元测试以确保抛出myexception?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-02 17:59:25

让MyFunction立即返回的唯一方法是有一个工作线程,它最终调用回调函数。如果是这样,那么就不可能在代码中捕获从该工作线程抛出的异常。您必须捕获工作线程中的所有异常,并在那里处理它们。在异常处理程序中,您仍然可以使用指示异常已发生的参数来调用回调函数,从而通知用户。

票数 3
EN

Stack Overflow用户

发布于 2012-11-02 20:51:14

我将使用xUnit++,分两个阶段执行此操作:测试MyFunction和测试回调。

代码语言:javascript
运行
复制
FACT("MyFunction returns immediately")
{
    struct callback
    {
        callback()
            : success(false)
        {
        }

        void operator()() const
        {
            if (!success)
            {
                Assert.Fail() << "MyFunction executed callback before returning.";
            }
        }

        bool success;
    } cb;

    MyFunction(cb);

    cb.success = true;
}

FACT("The real callback throws an exception when complete")
{
   auto e = Assert.Throws<MyException>(myCallback);

   // further asserts for the value of e
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13192665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档