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

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


person pierrotlefou    schedule 24.02.2010    source источник


Ответы (5)


Описание Rspec говорит:

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

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

person Kirill V. Lyadvinsky    schedule 24.02.2010
comment
Зависит от того, что вы хотите делать с rspec. В проекте, над которым я работаю, есть ребята, которые пишут функции огурца и превращают их в настоящие тестовые наборы для приложений, написанных с помощью c ++ & qt. Есть еще несколько дополнительных программ, но, черт возьми, это все еще выполнимо. - person rasjani; 30.06.2010
comment
Посмотрите мой ответ, stackoverflow.com/a/41783609/2009612, я случайно нашел блог о тестировании C / C ++ используя Ruby. - person FilBot3; 21.01.2017

Я знаю, что воскрешаю ДРЕВНИЙ вопрос ... но я получаю эту ссылку из Google при поиске в rspec и c ++.

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

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

person Shadow Radiance    schedule 01.04.2014
comment
Пара полезных обсуждений: stackoverflow.com/questions/87794/c-unit -testing-framework stackoverflow.com/questions/20606793/ - person Joe Schrag; 27.05.2014

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

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

person Thomas Schaub    schedule 24.02.2010

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

person Atifm    schedule 20.01.2016

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

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

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

person FilBot3    schedule 21.01.2017