使用rspec来测试C / C ++程序

时间:2010-02-24 09:22:36

标签: c++ ruby automated-tests rspec test-framework

Rspec ruby​​ / rails是否具体?是否可以将它用作C / C ++程序的测试框架?

5 个答案:

答案 0 :(得分:2)

我知道我正在复活一个古老的问题...但是当我搜索rspec和c ++时,我从谷歌那里得到了这个链接。

Google本身构建了一个名为GoogleTest的(非常简单易用)测试套件,该套件基于xUnit,旨在实现跨平台。

他们还有一个名为GoogleMock的模拟框架。

答案 1 :(得分:1)

Rspec说明:

  

RSpec是Ruby的原始行为驱动开发框架

我认为这意味着这个工具是特定于Ruby的。对于c ++,您可以使用Boost Test Library或其他工具。

答案 2 :(得分:1)

我不认为RSpec适用于C ++,但你应该看看这个理解:http://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle

根据我的经验:你可以使用CppUnit,但它有些痛苦。每次测试都有很多开销(开销意味着代码行),因此添加测试变得很烦人。 CppTest看起来好一点,cxxtest似乎非常好,虽然我自己没有使用过最后两个。

答案 3 :(得分:1)

我刚看到ccspec,看起来非常有前途。

https://github.com/zhangsu/ccspec

基本上使用C ++ 11构造来创建类似于rspec的内容。如果您正在寻找像BDD工具这样的rspec,它看起来很合适。请查看网站上的以下示例:

 class Student {
 public:
  bool hasPapers() const {
    return true;
  }

  string status() const {
    return "alumni";
  }
};

auto student_spec = describe("Student", [] {
  Student subject;

  it("has published papers", [subject] {
    expect(subject.hasPapers()).to(be_truthy);
  });

  it("is alumni", [subject] {
    expect(subject.status()).to(eq("alumni"));
  });
});

有人在这试试吗?我不确定它是否具有类似于模拟功能的rspec,但看起来你可以利用gmock做一些嘲弄。不完全具有rspec功能的功能,但可能与C ++ 11中的功能一样接近

答案 4 :(得分:0)

当我开始重新进入C / C ++开发并开始寻找类似于RSpec,或MiniTest for Ruby和JUnit for Java的东西时,我也在考虑同样的事情。

http://sodabrew.com/2012/04/writing-c-unit-tests-in-ruby.html

此链接显示的是如何使用FFI gem将C / C ++对象文件加载到Ruby中,并将其称为几乎就像是本机Ruby函数一样。你可能会发现它很漂亮。