24,854
社区成员
发帖
与我相关
我的任务
分享
#include <mockcpp/mockcpp.hpp>
#include "testngpp/testngpp.hpp"
#include "calculator.h"
USING_TESTNGPP_NS
FIXTURE(Calcu1129)
{
SETUP()
{
INFO("Start Calcu29");
}
TEARDOWN()
{
INFO("TEARDOWN Calcu29");// delete foo;
}
TEST(calculator.h add t1)
{
INFO("Start mocker m_add");
MOCKER(m_add)
.stubs()//expects(once())
.with(eq(4), eq(11))
.will(returnValue(15));
INFO("End mocker m_add");
ASSERT_EQ(15,m_add(4,11));
INFO("assert_eq");
}
TEST(calculator.h add t2)
{
ASSERT_NE(4,m_add(1,2));
WARN("assert_ne");
}
TEST(calculator.h m_divide() t3)
{
ASSERT_DELTA(2.5,m_divide(5,2),0.001);
}
TEST(calculator.h m_divide() t4)
{
ASSERT_THROWS(m_divide(5,0),std::runtime_error);
}
// TEST(calculator.h m_divide() t5)
// {
// m_divide(5,0);
// }
};
[ 57%] Built target calcu
[ 71%] Linking CXX shared library libzvsTestSuit.so
run test.........................
+ testngpp-runner /home/weiran/TestDebug1118/utSimple1129/build/test/libzvsTestSuit -L/usr/local/testngpp/listener -ltestngppstdoutlistener -c -l0 -ltestngppxmllistener /home/weiran/TestDebug1118/utSimple1129/output/test_result.xml -t* > succ > nothing -c10
loading testngppstdoutlistener ... OK
loading testngppxmllistener ... OK
.
[ INFO ] zvsTestSuit::CBar::should be able to div 2 integers - TestBar.h:18: the result should be double type
.
[ WARNING ] zvsTestSuit::CBar::if devident is 0 => throw exception - TestBar.h:24: not implemented yet
.
[ INFO ] zvsTestSuit::CBar::test devide by 0 with mock - TestBar.h:31: CBar
.
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t1 - TestCommon.h:16: Start Calcu29
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t1 - TestCommon.h:26: Start mocker m_add
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t1 - TestCommon.h:31: End mocker m_add
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t1 - TestCommon.h:33: assert_eq
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t1 - TestCommon.h:21: TEARDOWN Calcu29
[ FAILED ] zvsTestSuit::Calcu1129::calculator.h add t1 - NULL:0: Leaked object at 0x00C2FDF0 (24 bytes) [content 40 6F 7E FC C8 7F 00 00 60 FC ] [at (instruction 0x00007FC8FC58ED76, 0)].
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t1 - debug_new.cpp:770: 54 leak(s) found.
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t2 - TestCommon.h:16: Start Calcu29
[ ERROR ] zvsTestSuit::Calcu1129::calculator.h add t2 - TestCommon.h:36:
=====================================
Unexpected invocation: the invocation cannot be found in allowed invoking list.
Invoked: m_add((int)0x1/1, (int)0x2/2)
Allowed:
method(m_add)
.stubs()
.invoked(2)
.with(eq((int)0x4/4), eq((int)0xb/11))
.will(returnValue((int)0xf/15));
method(m_add)
.stubs()
.invoked(0)
.with(eq((int)0x4/4), eq((int)0xb/11))
.will(returnValue((int)0xf/15));
=====================================
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t2 - TestCommon.h:21: TEARDOWN Calcu29
[ ERROR ] zvsTestSuit::Calcu1129::calculator.h add t2 - TestCommon.h:36:
=====================================
Unexpected invocation: the invocation cannot be found in allowed invoking list.
Invoked: m_add((int)0x1/1, (int)0x2/2)
Allowed:
method(m_add)
.stubs()
.invoked(2)
.with(eq((int)0x4/4), eq((int)0xb/11))
.will(returnValue((int)0xf/15));
method(m_add)
.stubs()
.invoked(0)
.with(eq((int)0x4/4), eq((int)0xb/11))
.will(returnValue((int)0xf/15));
=====================================
[ FAILED ] zvsTestSuit::Calcu1129::calculator.h add t2 - NULL:0: Leaked object at 0x00C324B0 (104 bytes) [content C0 0C A0 FC C8 7F 00 00 C8 24 ] [at (instruction 0x00007FC8FC7FAFF9, 0)].
[ INFO ] zvsTestSuit::Calcu1129::calculator.h add t2 - debug_new.cpp:770: 7 leak(s) found.
[ INFO ] zvsTestSuit::Calcu1129::calculator.h m_divide() t3 - TestCommon.h:16: Start Calcu29
[ INFO ] zvsTestSuit::Calcu1129::calculator.h m_divide() t3 - TestCommon.h:21: TEARDOWN Calcu29
.
[ INFO ] zvsTestSuit::Calcu1129::calculator.h m_divide() t4 - TestCommon.h:16: Start Calcu29
[ INFO ] zvsTestSuit::Calcu1129::calculator.h m_divide() t4 - TestCommon.h:21: TEARDOWN Calcu29
.
#include <exception>
#include <stdexcept>
#include "calculator.h"
int m_add(int a, int b) {
return a+b;
}
int m_subtract(int a, int b) {
return a-b;
}
int m_multiply(int a, int b) {
return a * b;
}
float m_divide(int a, int b) {
if(b==0) throw std::runtime_error("divide 0 error!");
return a/float(b);
}