关闭

在S60平台进行单元测试(下)

发表于:2010-3-12 11:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Li Fang    来源:forum.nokia.com

  附录A TestSource.cpp

#include "TestHeader.h"
#include "TestDriver.h"
#include "Logger.h"
#include "cmapexamplesmsengine.h"
#include <msvstore.h>
 
// ========== logger ==========
#include <flogger.h>
#define __DEFINE_LITERAL(aLiteralName, aStr) _LIT(aLiteralName, aStr);
_LIT( _KLogDir, "MyLogs" );
_LIT( _KLogFile, "test.txt" );
#define _LOGF( aEllipsis )\
        {\
        _LIT(_KFormat,"%S(%d):%Ld:%S: ");\
        __DEFINE_LITERAL( _KFile, __FILE__ );\
        TPtrC8 _func8((TUint8*)__FUNCTION__);\
        TBuf<40> _func;\
        _func.Copy(_func8.Right(40));\
        TBuf<256> _log;\
        _log.Format(_KFormat, &_KFile, __LINE__, RThread().Id().Id(), &_func);\
        _log.AppendFormat aEllipsis;\
        RFileLogger::Write( _KLogDir, _KLogFile, EFileLoggingModeAppend, _log );\
        }
#define _HERE() _LOGF((KNullDesC))
 
// ========== stubbed / mocked implementations ==========
class DummyObserver : public MSmsEngineObserver
{
virtual void MessageSent()
        {
        _LOGF((_L("DummyObserver::MessageSent()")));
        }
virtual void MessageReceived(TDesC& aMsg, TDesC& aAddr)
        {
        _LOGF((_L("DummyObserver::MessageReceived(%S, %S)"), &aMsg, &aAddr));
        }
virtual void MessageRequested(TDesC& aMsg, TDesC& aAddr)
        {
        _LOGF((_L("DummyObserver::MessageRequested(%S, %S)"), &aMsg, &aAddr));
        }
virtual void SmsEngineError(TInt aErrorCode)
        {
        _LOGF((_L("DummyObserver::SmsEngineError(%d)"), aErrorCode));
        }
};
 
void RSendAsMessage::AddRecipientL(const TDesC16& a, RSendAsMessage::TSendAsRecipientType b)
        {
        _LOGF((_L("RSendAsMessage::AddRecipientL(%S, %d)"), &a, b));
        }
 
void RSendAsMessage::Close()
        {
        _LOGF((_L("RSendAsMessage::Close()")));
        }
 
void RSendAsMessage::CreateL(RSendAs &a, TUid b)
        {
        _LOGF((_L("RSendAsMessage::CreateL(%d, %d)"), &a, b));
        }
 
void RSendAsMessage::SendMessage(class TRequestStatus &)
        {
        _LOGF((_L("RSendAsMessage::SendMessage()")));
        }
 
// global function pointer
void (*gRSendAsMessage_SetBodyTextLHook)() = NULL;
 
void RSendAsMessage::SetBodyTextL(const TDesC16& a)
        {
        _LOGF((_L("RSendAsMessage::SetBodyTextL(%S)"), &a));
        if(gRSendAsMessage_SetBodyTextLHook)
            gRSendAsMessage_SetBodyTextLHook();
        }
 
CMsvEntry * CMsvEntry::NewL(CMsvSession &, long, TMsvSelectionOrdering const &)
        {
        _LOGF((_L("CMsvEntry::NewL()")));
        return NULL;
        }
 
CMsvSession * CMsvSession::OpenAsyncL(MMsvSessionObserver &)
        {
        _LOGF((_L("CMsvSession::OpenAsyncL()")));
        return NULL;
        }
 
CMsvStore * CMsvEntry::ReadStoreL(void)
        {
        _LOGF((_L("CMsvEntry::ReadStoreL()")));
        return NULL;
        }
 
TInt CMsvStore::HasBodyTextL(void) const
        {
        _LOGF((_L("CMsvStore::HasBodyTextL()")));
        return KErrNone;
        }
 
TInt RSendAs::Connect(void)
        {
        _LOGF((_L("RSendAs::Connect()")));
        return KErrNone;
        }
 
TMsvSelectionOrdering::TMsvSelectionOrdering(void)
        {
        _LOGF((_L("TMsvSelectionOrdering::TMsvSelectionOrdering()")));
        }
 
void CMsvEntry::DeleteL(long)
        {
        _LOGF((_L("TCMsvEntry::DeleteL()")));
        }
 
void CMsvEntry::SetEntryL(long)
        {
        _LOGF((_L("CMsvEntry::SetEntryL()")));
        }
 
void CMsvStore::RestoreBodyTextL(CRichText &)
        {
        _LOGF((_L("CMsvStore::RestoreBodyTextL()")));
        }
 
// ========== test suite ==========
void CMapExampleSmsEngineTest::setUp()
        {
        _HERE();
        gRSendAsMessage_SetBodyTextLHook = NULL;
        iObserver = new (ELeave) DummyObserver();
        iTarget = CMapExampleSmsEngine::NewL(iObserver);
        }
 
void CMapExampleSmsEngineTest::tearDown()
        {
        _HERE();
        delete iTarget;
        delete iObserver;
        }
 
void CMapExampleSmsEngineTest::testParseMsgCoordinates()
        {
        _HERE();
        }
 
void CMapExampleSmsEngineTest::testParseMsgRequestType()
        {
        _HERE();
        }
 
void CMapExampleSmsEngineTest::testParseMsgUid()
        {
        _HERE();
        iTarget->ParseMsgUid(_L("REQ E01FF1Cd"));
        }
 
void CMapExampleSmsEngineTest::testSendMessage()
        {
        _HERE();
        iTarget->SendSmsL(_L("12345678"), _L("abcd"));
        }
 
void ThrowExceptionL()
        {
        _HERE();
        User::Leave(KErrGeneral);
        }
 
void CMapExampleSmsEngineTest::testSendMessageExceptions()
        {
        _HERE();
        gRSendAsMessage_SetBodyTextLHook = ThrowExceptionL;
        TS_ASSERT_THROWS_ANYTHING(
        iTarget->SendSmsL(_L("12345678"), _L("abcd")));
        }

65/6<123456>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号