代码之家  ›  专栏  ›  技术社区  ›  interstar

用高级语言对静态C++库进行单元测试?

  •  0
  • interstar  · 技术社区  · 6 年前

    我想用测试驱动风格编写一些静态C++库。

    我开始四处寻找C++单元测试框架,然后我想知道为什么我需要在C++中编写测试代码。

    应该可以从更高级的语言调用静态C++库,这样编写测试就更容易了。

    这是一个明智的想法吗?

    有没有什么特别的语言使这一点特别简单?不管是蟒蛇,卢阿还是别的什么?甚至是一个特别的DSL?

    有什么好的教程提示吗?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Dirk Herrmann    6 年前

    用某些语言绑定测试来自其他语言的C++代码会对如何测试产生一些影响。

    通过C++编写的测试,您的测试代码将更接近真实的客户端代码。这意味着,所有C++特定的编译时间效应都会发生,比如宏扩展、参数的整数提升、重载解析、内联、模板实例化等等,这将在C++中调用的每个单独的测试案例中单独调用。

    相反,当从另一种语言测试时,您将不得不将C++函数/方法等绑定到符号或其他语言的任何东西(可能是在包装函数之间)。这些语言绑定的编译是所有上述编译时效果发生的唯一点。

    使用另一种语言的这些结果对你来说是否合适(甚至是可取的)取决于你的测试目标,因此你必须对它做出判断。