crossplatform.ru

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

> Юнит тесты
Trisch
  опции профиля:
сообщение 20.10.2014, 14:04
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


В общем, я решил освоить юнит тесты.

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

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.


Что тут надо исправить, чтобы все заработало?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Авварон
  опции профиля:
сообщение 9.11.2014, 11:54
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 99
Регистрация: 26.4.2009
Пользователь №: 709

Спасибо сказали: 14 раз(а)




Репутация:   0  


Теме 100 лет, но всё же отвечу. В хедер нельзя мок инкюдить
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 10:01