6

Is Rspec ruby/rails specific? Is it possible to use it as a test framework for C/C++ program?

4

5 回答 5

2

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

Google 自己构建了一个(非常简单易用的)测试套件,称为GoogleTest,它基于 xUnit 并设计为跨平台。

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

于 2014-04-01T03:16:35.450 回答
1

Rspec 的描述 说:

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

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

于 2010-02-24T09:28:49.323 回答
1

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

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

于 2010-02-24T09:33:09.053 回答
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 中的功能一样接近

于 2016-01-20T17:07:06.827 回答
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 函数一样调用它。你可能会觉得它很漂亮。

于 2017-01-21T19:34:04.527 回答