为什么这个NUnit + Moq测试失败了?

时间:2009-01-26 22:11:18

标签: c# nunit moq

我希望你知道,因为我没有看到它。无论谁弄明白人们如何实现这项测试所要实现的目标,都会获得奖励积分。

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 个答案:

答案 0 :(得分:4)

原来这是一种飞行员错误。我错误地认为Moq在Mono上工作正常。 (它看起来确实很好)。此问题仅在使用mono的gmcs编译时发生,而不是在使用Microsofts csc编译时发生。

我已经报告了单声道团队的相应错误,并将继续确保使用mono的gmcs.exe编译完整的Moq测试套件

对不起噪音。

卢卡斯

答案 1 :(得分:0)

此测试工作正常。

由于没有正在测试的系统,您正在测试moq是否按预期工作。

答案 2 :(得分:0)

抱歉不够清楚。我正在测试的确是Mock表现得像我期望的那样。对我来说,上面的测试失败了。听到它传给你我感到非常惊讶。 我在VisualStudio 2008中运行测试。我刚刚升级到Moq 2.6,测试仍然失败。您使用哪种版本的Moq进行此测试?

答案 3 :(得分:0)

这不会使用trunk(3.0 beta)的最新版本重新编译