2

見えないのでわかると思います。このテストが達成しようとしていることを達成する方法を理解している人には、ボーナス ポイントがあります。

using NUnit.Framework;
using Moq;

[TestFixture]
public class MoqHuh
{
    public class A {}
    public class B : A {}

    public interface IHelper
    {
        void DoIt(A a);
    }

    [Test]
    public void Huh()
    {
        var mock = new Mock<IHelper>();
        mock.Expect(helper => helper.DoIt(It.IsAny<B>())).Verifiable();

        mock.Object.DoIt(new B());

        mock.VerifyAll();
    }
}
4

4 に答える 4

4

これは一種のパイロットエラーであることが判明しました。MoqがMonoで正常に動作していると誤って想定しました。(それはうまくいくように見えます)。この問題は、Microsoftのcscでコンパイルされた場合ではなく、monoのgmcsでコンパイルされた場合にのみ発生します。

私はmonoチームで適切なバグを報告しました。これからも、monoのgmcs.exeでコンパイルしたときに完全なMoqテストスイートが合格することを確認していきます。

騒音でごめんなさい。

ルーカス

于 2009-02-03T09:30:59.333 に答える
0

十分に明確ではないことをお詫び申し上げます。私がテストしているのは、モックが期待どおりに動作することです。私にとって、上記のテストは失敗します。それがあなたのために通過するのを聞いて私は非常に驚いています。VisualStudio2008でテストを実行しています。Moq2.6にアップグレードしたばかりですが、テストは失敗します。このテストに合格するために使用するMoqのバージョンは何ですか?

于 2009-01-27T00:34:09.803 に答える
0

このテストは正常に機能します。

テスト対象のシステムがないため、moq が期待どおりに機能することをテストしています。

于 2009-01-26T23:15:01.427 に答える