feat: custom test
This commit is contained in:
parent
d7818748c6
commit
3b25f2dd5c
1 changed files with 11 additions and 4 deletions
15
test.cpp
15
test.cpp
|
|
@ -1,15 +1,14 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
typedef std::function<bool()> TestFunction;
|
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
private:
|
private:
|
||||||
TestFunction complete;
|
std::function<bool()> complete;
|
||||||
public:
|
public:
|
||||||
std::string test_name;
|
std::string test_name;
|
||||||
Test(std::string name, TestFunction complete): test_name(name), complete(complete){};
|
Test(std::string name, std::function<bool()> complete): test_name(name), complete(complete){};
|
||||||
bool evaluate();
|
bool evaluate();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -21,11 +20,14 @@ class TestSuite {
|
||||||
std::vector<Test> tests;
|
std::vector<Test> tests;
|
||||||
public:
|
public:
|
||||||
TestSuite(std::string);
|
TestSuite(std::string);
|
||||||
|
|
||||||
void run();
|
void run();
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
TestSuite* eq(std::string, T, T);
|
TestSuite* eq(std::string, T, T);
|
||||||
template<class T>
|
template<class T>
|
||||||
TestSuite* neq(std::string, T, T);
|
TestSuite* neq(std::string, T, T);
|
||||||
|
TestSuite* custom(std::string, std::function<bool()>);
|
||||||
};
|
};
|
||||||
|
|
||||||
TestSuite::TestSuite(std::string name): suite_name(name) {
|
TestSuite::TestSuite(std::string name): suite_name(name) {
|
||||||
|
|
@ -44,6 +46,11 @@ TestSuite* TestSuite::neq(std::string test_name, T test_value, T expected_value)
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TestSuite* TestSuite::custom(std::string test_name, std::function<bool()> completness_function) {
|
||||||
|
tests.push_back(Test(test_name, completness_function));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
void TestSuite::run() {
|
void TestSuite::run() {
|
||||||
std::cout << "=== " << suite_name << " ===" << std::endl;
|
std::cout << "=== " << suite_name << " ===" << std::endl;
|
||||||
int completed = 0;
|
int completed = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue