Используйте rspec для тестирования программы на C / C ++ - PullRequest
6 голосов
/ 24 февраля 2010

Специфичен ли Rspec ruby ​​/ rails? Можно ли использовать его в качестве тестовой среды для программы на C / C ++?

Ответы [ 5 ]

2 голосов
/ 01 апреля 2014

Я знаю, что воскрешаю древний вопрос ... но я получаю эту ссылку от Google при поиске rspec и c ++.

Google сам создал (довольно простой в использовании) набор тестов под названием GoogleTest , который основан на xUnit и предназначен для кроссплатформенности.

У них также есть насмешливый фреймворк под названием GoogleMock .

1 голос
/ 20 января 2016

Я только что видел 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

1 голос
/ 24 февраля 2010

Я не думаю, что RSpec работает для C ++, но вы должны проверить это понимание: http://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle

Из моего опыта: вы можете использовать CppUnit, но это как-то больно. Слишком много накладных расходов на тест (издержки означают строки кода), поэтому добавление тестов становится раздражающим. CppTest выглядит немного лучше, а cxxtest кажется действительно хорошим, хотя я и сам не использовал последние два.

1 голос
/ 24 февраля 2010

Описание Rspec гласит:

RSpec - это оригинальная среда разработки, управляемая поведением для Ruby .

Я думаю, это означает, что этот инструмент специфичен для Ruby. Для c ++ вы можете использовать Boost Test Library или другие инструменты.

0 голосов
/ 21 января 2017

Я думал о том же, когда начал возвращаться к разработке на C / C ++ и начал искать что-то похожее на RSpec, MiniTest для Ruby и JUnit для Java.

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

Эта ссылка показывает, как использовать гем FFI для загрузки вашего объектного файла C / C ++ в Ruby и вызывать его почти так же, как если бы это была встроенная функция Ruby. Вы можете найти это изящным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...