2010-02-24 53 views

回答

1

描述说:

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

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

+0

取决于你想用rspec做什么。正在进行的项目中有一些人写了黄瓜功能,并将它们转换为用C++和qt编写的应用程序的实际测试套件。还有一些额外的软件,但afaik,它仍然可行。 – rasjani 2010-06-30 10:02:35

+0

查看我的回答,http://stackoverflow.com/a/41783609/2009612,我碰巧找到一篇关于使用Ruby测试C/C++的博客。 – Pred 2017-01-21 19:34:56

1

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

从我的经验:你可以使用的CppUnit,但它在某种程度上痛苦。每次测试都有很多开销(开销意味着代码行),因此添加测试变得烦人。 CppTest看起来好一点,cxxtest看起来真的很好,尽管我自己并没有用过最后两个。

+0

+1。 – pierrotlefou 2010-02-24 10:16:57

1

我知道我正在复活一个古老的问题......但是当我搜索rspec和C++时,我从google上得到这个链接。

谷歌本身内置了(很简单的使用)测试套件称为GoogleTest,是基于的xUnit和设计是跨平台的。

他们也有一个叫做GoogleMock的嘲弄框架。

+0

一些有用的讨论:http://stackoverflow.com/questions/87794/c-unit-testing-framework http://stackoverflow.com/questions/20606793/state-of-the-art-c-unit -testing – 2014-05-27 18:13:03

1

我刚看到ccspec,它看起来很有希望。

https://github.com/zhangsu/ccspec

主要采用C++ 11层构造使一些读取就像rspec的。它看起来像它适合账单,如果你正在寻找一个rspec像BDD工具。看看下面的例子从网站:

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

0

当我开始回到C/C++开发并开始寻找类似于RSpec或MiniTest for Ruby,以及JUnit for Java。

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

什么这个链接显示的是如何使用FFI宝石加载你的C/C++对象文件到红宝石,并把它几乎就像它是一个本地Ruby功能。你可能会发现它很漂亮。