6

Rspecルビー/レールは特定のものですか?C / C ++プログラムのテストフレームワークとして使用することは可能ですか?

4

5 に答える 5

2

私は古代の質問を復活させていることを知っています...しかし、rspecとc ++を検索すると、グーグルからこのリンクを取得します。

Google自体が、xUnitに基づいており、クロスプラットフォーム用に設計されたGoogleTestと呼ばれる(非常に使いやすい)テストスイートを構築しました。

また、GoogleMockと呼ばれるモックフレームワークもあります。

于 2014-04-01T03:16:35.450 に答える
1

Rspecの説明によると:

RSpecは、Ruby用のオリジナルのBehaviorDrivenDevelopmentフレームワークです。

つまり、このツールはRuby固有のものだと思います。C ++の場合、BoostTestLibraryまたはその他のツールを使用できます。

于 2010-02-24T09:28:49.323 に答える
1

RSpecがC++で機能するとは思いませんが、次の理解を確認する必要があります:http: //gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle

私の経験から:CppUnitを使用することはできますが、それはどういうわけか苦痛です。テストごとに多くのオーバーヘッドがあるため(オーバーヘッドはコードの行を意味します)、テストを追加するのは面倒になります。私は最後の2つを自分で使用していませんが、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、Ruby用のMiniTest、およびJava用のJUnitに似たものを探し始めたとき、私は同じことを考えていました。

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

このリンクが示すのは、FFIgemを使用してC/ C ++オブジェクトファイルをRubyにロードし、それをネイティブのRuby関数であるかのように呼び出す方法です。あなたはそれが気の利いたと思うかもしれません。

于 2017-01-21T19:34:04.527 に答える