問題タブ [microsoft-cpp-unit-test]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1781 参照

c++ - Visual Studio CppUnitTestFramework を使用してテスト変数を初期化する方法

4 つの制御可能なモーターのそれぞれにstruct Axisを使用しているロボット コントローラー クラスControllerを作成しています。

テストごとにすべてをリセットしたいので、各テストメソッドの前に新しいコントローラーに変更されるクラスにポインターを作成しました。初期化は TEST_METHOD_INITIALIZE で正常に機能しますが、TEST_METHOD が呼び出されると、プログラムは軸ポインターをリセットするように見えます。

ご協力いただきありがとうございます!

編集:さらに分析した後、初期化された Axis オブジェクト Axis init_mx はメソッドの終了後に削除されるという理論があります。

Edit2: これは次のような少し複雑な問題だと思います: C++ のローカル変数へのポインタ それにもかかわらず、実際に各変数をリセットせずに、すべてのメソッドで Axis 変数をリセットする方法が見つかりませんでした。

ここに画像の説明を入力

ここに画像の説明を入力 Controller.h(抜粋):

Controller.cpp(抜粋)