Qt_Core_AD_5_6 - 8BitsCoding/RobotMentor GitHub Wiki


#include <QtCore/QCoreApplication>

#include <qtest.h>

#include "Widget.h"

int main(int argc, char *argv[])
{
	QCoreApplication a(argc, argv);

	Widget w;
	QTest::qExec(&w);

	return a.exec();
}
#pragma once

#include <QObject>
#include <qdebug.h>
#include <qtest.h>

class Widget : public QObject
{
	Q_OBJECT

public:
	explicit Widget(QObject *parent = nullptr);
	~Widget();

signals:

public slots:

private slots:
	void test();
	void test_data();
	void testFail();
};
#include "Widget.h"

Widget::Widget(QObject *parent)
	: QObject(parent)
{
}

Widget::~Widget()
{
}

void Widget::test()
{
	QFETCH(int, value);

	// Skip 5
	if (value == 5) QSKIP("Skipping 5");

	// Exits
	qInfo() << "Testing: " << value;
}

void Widget::test_data()
{
	qInfo() << "Generating data ... ";
	QTest::addColumn<int>("value");

	for (int i = 0; i < 10; i++) {
		QString name = QString::number(i);
		QByteArray ba = name.toLatin1();
		const char* c_str = ba.data();
		QTest::newRow(c_str) << i;
	}
}

void Widget::testFail()
{
	int current = 6;
	int supported = 6;
	QCOMPARE(current, supported);

	// Test Previous
	QEXPECT_FAIL("", "Version 5 is not Supported", Continue);
	//QCOMPARE(current, 5);	// Will Fail
}

이미지

⚠️ **GitHub.com Fallback** ⚠️