crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Юнит тесты
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Авварон Дата 9.11.2014, 11:54
  Теме 100 лет, но всё же отвечу. В хедер нельзя мок инкюдить
Trisch Дата 20.10.2014, 14:04
  В общем, я решил освоить юнит тесты.

Вот примерный код тестов.

test_myclass.h
Раскрывающийся текст

#ifndef TEST_MYCLASS_H
#define TEST_MYCLASS_H

#include <QTest>

class Test_MyClass : public QObject {
    Q_OBJECT

private slots:
    void min();
    void max();
};


QTEST_MAIN(Test_MyClass)
#include "test_myclass.moc"

#endif // TEST_MYCLASS_H



test_myclass.cpp
Раскрывающийся текст

#include "test_myclass.h"
#include "myclass.h"

void Test_MyClass::min() {
    MyClass myClass;
    QCOMPARE(myClass.min(25, 0), 0);
    QCOMPARE(myClass.min(-12, -5), -12);
    QCOMPARE(myClass.min(2007, 2007), 2007);
    QCOMPARE(myClass.min(-12, 5), -12);
}

void Test_MyClass::max() {
    MyClass myClass;
    QCOMPARE(myClass.max(25, 0), 25);
    QCOMPARE(myClass.max(-12, -5), -5);
    QCOMPARE(myClass.max(2007, 2007), 2007);
    QCOMPARE(myClass.max(-12, 5), 5);
}



myclass.h
Раскрывающийся текст

#ifndef MYCLASS_H
#define MYCLASS_H

class MyClass {
public:
    MyClass();

    int min(int n1, int n2);
    int max(int n1, int n2);
};

#endif // MYCLASS_H



myclass.cpp
Раскрывающийся текст

#include "myclass.h"

MyClass::MyClass() {
}

int MyClass::min(int n1, int n2) {
    return n1 < n2 ? n1 : n2;
}

int MyClass::max(int n1, int n2) {
    return n1 > n2 ? n1 : n2;
}



Но данная программа даже не компилируется. Компиляция прерывается вот с такой ошибкой.
:-1: error: No rule to make target 'test_myclass.moc', needed by 'main.o'.  Stop.


Что тут надо исправить, чтобы все заработало?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 2:42