productpersistencetestcase.cpp
来自「著名的uncle Bob的Agile software development的」· C++ 代码 · 共 53 行
CPP
53 行
#include "ProductPersistenceTestCase.h"
#include <strstream.h>
#include "product.h"
#include "persistentProduct.h"
#include "persistentObject.h"
#include "assembly.h"
#include "persistentAssembly.h"
void ProductPersistenceTestCase::setUp ()
{
}
void ProductPersistenceTestCase::testWriteProduct()
{
ostrstream s;
Product* p = new PersistentProduct("Cheerios");
PersistentObject* po = dynamic_cast<PersistentObject*>(p);
assert(po);
po->write(s);
char* writtenString = s.str();
assert(strcmp("<PRODUCT><NAME>Cheerios</NAME></PRODUCT>", writtenString) == 0);
}
void ProductPersistenceTestCase::testWriteAssembly()
{
ostrstream s;
Assembly* a = new PersistentAssembly("Wheaties", "7734");
PersistentObject* po = dynamic_cast<PersistentObject*>(a);
assert(po);
po->write(s);
char* writtenString = s.str();
assert(strcmp("<ASSEMBLY><NAME>Wheaties</NAME><ASSYCODE>7734</ASSYCODE></ASSEMBLY>", writtenString) == 0);
}
//------------------------------------------
template <class T>
TestCaller<T>* makeTestCaller(char* name, void (T::*f)() )
{
return new TestCaller<T>(name, f);
}
Test *ProductPersistenceTestCase::suite ()
{
TestSuite *testSuite = new TestSuite ("ProductPersistenceTestCase");
testSuite->addTest (makeTestCaller("testWriteProduct", &ProductPersistenceTestCase::testWriteProduct));
testSuite->addTest (makeTestCaller("testWriteAssembly", &ProductPersistenceTestCase::testWriteAssembly));
return testSuite;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?