私は後続の呼び出しの検証を実行しようとしていたと私はMOQこのためInSequence()メソッドをサポートしていることを見つけ、のような:私は「厳しい」として模擬動作を指定するときMockBehavior.LooseでmoqのInSequence()を使用できますか?
MockSequence s = new MockSequence();
validator.InSequence(s).Setup(m => m.IsValid(It.IsAny<Frame>())).Returns(true);
encryptor.InSequence(s).Setup(m=>m.Encrypt(It.IsAny<Frame>()));
socket.InSequence(s).Setup(m => m.Send(It.IsAny<Frame>()));
compressor.InSequence(s).Setup(m => m.Compress(It.IsAny<Frame>()));
はしかし、これが唯一の動作しているようですこれは、嘲笑されたオブジェクトの追加のメドを呼び出すことを禁じます。しかし、私はこれらのオブジェクトの他のメソッドを呼び出すことができるようにしたい、私はちょうどこの呼び出しを順番に実行したい。
.Callback()と手作業による実装ではなく、そのための「サポートされている」方法はありますか?私はmoq.sequenceと呼ばれる追加ライブラリを見つけましたが、プリコンパイルされたバージョンは最新のMoqでは動作しません。
このすべてを** Moq's Issues **サイトに投稿しましたか?あなたはその主題を研究しなければならなかったので、私はそれがドキュメンテーションで説明されていないと仮定します。つまり、彼らはこの問題を認識していないかもしれません。私はそこに投稿された問題/提案を調べることを保証することができます。それは時間がかかりますが、彼らはします。私は自分自身でいくつかの便利なパッチを送ってきました(代理人をカウントする、Count-callsなど)。あなたが関与したくなければ、私は問題を再確認してそこに登録することができますが、あなたは既に詳細を知っているので、あなたはそれをはるかに良く説明するでしょう:) [btw。 sorki、niechciałempolskimmieszaćna SO :)] – quetzalcoatl
こんにちは、ケツァルコアール。私はMoqが実際に維持されていることを知らなかったし、Moqのための少なくとも2つまたは3つのソースコードリポジトリがある。これは現在のものですか:https://github.com/Moq/moq4? クリスマス前と新年の前に数日間休暇を取る予定ですので、何かをまとめたり、少なくともさらに調査してみることにします。 –
はい、確かに、現在のものはGitHubのものです。以前はMoqがcode.googleでホストされていましたが、最近GitHubに移りました。 GitHubに掲載されている問題リストは最新のものであり、そこに新しい問題が報告されるはずです。報告された「古い」問題や機能リクエストの数のため、code.googleのサイトはまだ存在し、削除/削除されていません。それらをインポートする方法がないので、GitHub、IIRCに移動されませんでした。本当に誰も手でコピー・ペーストする必要はありませんでした。それらはまだ検討されていますが、私はGitHubの問題は古いcode.googleよりも自然な優先順位を持っていると思います。 – quetzalcoatl