パラメータとして std::shared_ptr を使用してシグナル/スロットを使用している Qt コードをテストしたいと思います。
私の問題は、他のすべてのタイプのパラメーターでうまく機能する QSignalSpy クラスが、標準の共有ポインターを使用する場合にはうまく機能しないように見えることです。実際、takeFirst メソッドは QVariant のリストを返します。次のようにして、引数を shared_ptr に変換できます。
QVERIFY(arguments.at(0).value<std::shared_ptr<Canard>>() == canardInstance); // verify the first argument
しかし、その後、同じヒープ メモリを参照する 2 つのスマート ポインターになり、現在のスコープから出るとクラッシュします。私の場合 QSignalSpy を使用する方法はありますか?
ありがとう !