37class UnitTestServiceAdapter
47 explicit UnitTestServiceAdapter(T* service)
53 void setClassSetUpFunction(
FuncPtr f) { m_class_set_up_function = f; }
54 void setTestSetUpFunction(
FuncPtr f) { m_set_up_function = f; }
55 void setClassTearDownFunction(
FuncPtr f) { m_class_tear_down_function = f; }
56 void setTestTearDownFunction(
FuncPtr f) { m_tear_down_function = f; }
57 void addTestFunction(
FuncPtr f, String name, String method_name)
59 TestFuncInfo info(f, name, method_name);
60 m_test_functions.add(info);
68 if (m_class_set_up_function)
69 (m_service->*m_class_set_up_function)();
76 report.
setAttrValue(
"name", m_service->serviceInfo()->localName());
77 for (TestFuncInfo func_info : m_test_functions) {
78 XmlNode xunittest = report.createAndAppendElement(
"unit-test");
81 xunittest.
setAttrValue(
"method-name", func_info.m_method_name);
82 if (m_set_up_function)
83 (m_service->*m_set_up_function)();
84 (m_service->*func_info.m_test_func)();
85 if (m_tear_down_function)
86 (m_service->*m_tear_down_function)();
88 m_service->info() <<
"[OK ] " << func_info.m_name;
92 XmlNode xexception = xunittest.createAndAppendElement(
"exception");
97 m_service->info() <<
"[FAILURE] " << func_info.m_name <<
" (line " << e.
line() <<
" in " << e.
where() <<
")";
98 m_service->info() <<
" " << e.
message();
108 if (m_class_tear_down_function)
109 (m_service->*m_class_tear_down_function)();
117 : m_test_func(test_func)
119 , m_method_name(method_name)
124 String m_method_name;
130 FuncPtr m_class_set_up_function =
nullptr;
132 FuncPtr m_set_up_function =
nullptr;
134 FuncPtr m_class_tear_down_function =
nullptr;
136 FuncPtr m_tear_down_function =
nullptr;
138 UniqueArray<TestFuncInfo> m_test_functions;