1

ユニットテストについて質問があります。誰かが私にアドバイスをくれることを願っています、事前に感謝します。

これが私の質問です。私は、Googleユニットテスト(gtest)に基づいてlibベースのユニットテストを書く必要があります。それはソケット通信に関するものです。それらのいくつかは低レベルのソケット関数をラップしました。つまり、それらの関数の単体テストも行う必要があります。ちなみに、私はlibのソースコードにアクセスできません=.=#

たとえば、AcceptConnection(いくつかの引数...) と呼ばれる関数があるとします。おそらく、SOCKET accept(SOCKET, SOCKADDR*, INT*) をラップします。どうすればテストできますか。現在ソースコードなし。WindowsソケットAPIの単体テストの書き方についての質問のようです。

これらのラップされた関数のユニット関数を作成することが合理的かどうか、およびユニットテストをより効率的にする方法がわかりません。

よろしく

ジョーイ・ユー

[アップデート]

私はいつかそれを解決できる方法があるかどうかを見つけようとしました。今はなかったようです。ソースコードがなければ、どのようなシステム機能を使用しているのかさえわかりません。親プロセスを使用する最悪の方法は、単体テスト アプリケーションを起動し、システム コールをリダイレクトすることはできません。

4

2 に答える 2

0

このリンクhttp://code.google.com/p/googlemock/wiki/ForDummiesに出くわしました。これにより、gtest のモックが可能になります。

おそらく、すべての低レベルのソケット関数をモックして、lib のコードをテストする必要があります。

于 2012-11-13T05:35:49.547 に答える
0

オペレーティング システムの syscalls にいくつかのフックをインストールして、行われている呼び出しを確認することができます...

または、ライブラリからの strace 出力である種のチェックを自動化することもできます。

これは「linux hooks」検索の最初の結果です。これは、linux で呼び出しをフックする良い方法のようです。これは、Windows での同様の動作のリファレンスです。私はそのところで試したことはありません。

于 2014-08-27T14:13:54.860 に答える