https://qt.gitorious.org/~niandong/qt/niandongs-qttools/commits/qtmockをダウンロードしました。私はQNetworkAccessManagerを酷使する必要があります。Visual StudioでQtMockをビルドできません
Qt 4.7.4を使用してQtCreator 2.3.1にqtmock.proを構築することができました。すべてのテストは必要なときに実行され、私は非常に退場しました!
私は、私のプロジェクトとそのすべての依存関係のライブラリを使用できるように、Visual Studioでビルドしなければなりませんでした。 Visual Studio 2010のプロでQt 4.8を使用しています。私は主要なqtmock.proをインポートし、最初にフレームワーク(テストや何もない)だけを含む基礎となるqtmockプロジェクトを構築しようとしました。それは正常に構築され、私は.libと.dllファイルを持っています。それから私はqnetworkstub.proをビルドしようとしました。QNetworkのモックオブジェクトはすべて私のプロジェクトに必要です。以下はビルドのコマンドラインです:
/OUT:"......\lib\qtnetworkmock.dll" /NOLOGO /LIBPATH:"E:\QT\4.8.0\lib" /LIBPATH:"e:\QT\4.8.0\lib" /LIBPATH:"../../../lib" /DLL "../../../lib\qtmock.lib" "E:\QT\4.8.0\lib\QtTestd4.lib" "E:\QT\4.8.0\lib\QtCored4.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Win32\qtnetworkmock.dll.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"E:.Qt.UnitTest\qtmock\lib\qtnetworkmock.pdb" /PGD:"E:\src\Qt.UnitTest\qtmock\lib\qtnetworkmock.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
と私はtestLibとCoreだけを使用しています。
私は、次リンキンエラーを得た:
Error 4 error LNK2019: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" ([email protected]@@[email protected]@B) referenced in function "public: __thiscall QNetworkRequest::~QNetworkRequest(void)" ([email protected]@[email protected]) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkrequest.obj qtnetworkstub
Error 5 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QTcpSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkreply.obj qtnetworkstub
Error 6 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QTcpSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkrequest.obj qtnetworkstub
Error 7 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QSslSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkreply.obj qtnetworkstub
Error 8 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QSslSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkrequest.obj qtnetworkstub
Error 1 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkaccessmanager.obj qtnetworkstub
Error 2 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkproxy.obj qtnetworkstub
Error 3 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkreply.obj qtnetworkstub
Error 9 error LNK1120: 3 unresolved externals E:\src\Qt.UnitTest\qtmock\lib\\qtnetworkmock.dll qtnetworkstub
私が手いけない事はある:私は、これらのオブジェクトのいずれかを使用していないと、彼らはどこにでも、そのプロジェクトで参照さアレント。それらのすべてはQIODeviceを継承していますが、どれくらい役立つかわかりません。
私はextremyこだわっていると私は本当にこのフレームワークを使用したいので、私は任意の助けをいただければ幸いです(これは、ユニットテストのために本当に素晴らしいですね!)