いくつかのクラスの単体テストを書いています。これらのクラスは、別のクラスを使用comms_client
してネットワーク通信を実行します。たとえば、パラメータとして a を受け取るメソッドをcomms_client
提供します:send
boost::shared_array
class comms_client
{
...
public:
void send(boost::shared_array<boost::uint8_t> const & buffer, size_t size) = 0;
...
};
クラスが何を送信しているかをテストするために、送信されている配列の内容が正しいかどうかを確認できるモック クラスを作成したいと考えています。モッククラスは次のようになります
class comms_client_mock : public comms_client
{
...
public:
MOCK_METHOD2(send, void(boost::shared_array<boost::uint8_t> const & buffer, size_t size));
..
};
残念ながら、そのようなタイプのパラメーターに期待値を設定する方法が見つかりませんでした。を使用してみましたtesting::ElementsAreArray
が、コンパイル エラーが発生します。そのような型のパラメータに期待値を設定するために使用できる関数はありますか? gmock ライブラリにカスタムの述語またはクラスを提供して、期待されるパラメータと実際のパラメータを比較できますか?