Napisałem testy jednostkowe, jednak podczas kompilacji wywala mi błędy LNK2001
i LNK1120
.
Tak wyglądają moje źródła:
plik testlist.cpp
wygląda tak:
#include <QtTest/QtTest>
#include <list.h>
class testList: public QObject
{
Q_OBJECT
private slots:
void get_data();
void get();
public:
List list;
testList();
};
testList::testList()
{
list.pushBack('a');
list.pushBack('b');
list.pushBack('c');
list.pushBack('d');
}
void testList::get_data()
{
QTest::addColumn<int>("number");
QTest::addColumn<char>("result");
QTest::newRow("zero") << 0 << 'a';
QTest::newRow("one") << 1 << 'b';
QTest::newRow("two") << 2 << 'c';
}
void testList::get()
{
QFETCH(int, number);
QFETCH(char, result);
QCOMPARE(list.get(number), result);
}
QTEST_MAIN(testList)
plik main.cpp
#include <QCoreApplication>
#include "list.h"
#include <iostream>
plik list.h
:
#ifndef LIST_H
#define LIST_H
class List
{
public:
List();
void pushBack(char c);
unsigned int size() const;
char get(int n);
void remove(int n);
private:
struct element{
char value;
element * next;
element();
};
element * first;
};
#endif // LIST_H
pliku list.cpp
nie ma chyba sensu zamieszczać, w razie czego załączam jeszcze spakowane źródła i plik Lista.pro
.
Dodam jeszcze, że kompilator tworzy plik testlist.obj
.