真正基本的moq示例失败了

Mor*_*ten 4 .net c# nunit unit-testing moq

我正在尝试Moq,而且我已经陷入了一个非常基本的例子.我想模拟一个非常简单的接口IInput:

namespace Example
{
    public interface IInput
    {
        int SomeProperty { get; set; }
    }
} 
Run Code Online (Sandbox Code Playgroud)

这似乎是一件非常容易的工作.但是,当我尝试在以下测试代码中模拟它时,我收到编译错误:

using Moq;
using NUnit.Framework;

namespace FirstEniro._Test
{

    [TestFixture]
    class TestFirstClass
    {
        [Test]
        public void TestConstructionOk()
        {
            var mock = new Mock<IInput>();
            mock.Setup(r => r.SomeProperty).Returns(3);

            var x = new FirstClass(mock);

            Assert.That(x, Is.EqualTo(3));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器说"无法转换Moq.Mock<Example.IInput><Example.IInput>.我看不出我做错了什么.请帮助我

Ser*_*kiy 12

使用Objectmock的属性来检索模拟对象的实例.

   var x = new FirstClass(mock.Object);
Run Code Online (Sandbox Code Playgroud)

在Moq框架Mock中,不是你嘲笑的实例(比如在Rhino Mocks中).