C# 如何对将被间接修改的房地产进行最低起订量?

C# 如何对将被间接修改的房地产进行最低起订量?,c#,unit-testing,moq,C#,Unit Testing,Moq,我尝试做一件非常简单的事情:为属性设置初始值,调用回调应该修改属性值的方法,并在最后读取属性 类Test2正在使用ITest1自动化一些操作 public interface ITest1 { decimal Value { get; set; } void Increment(); } public class Test2 { ITest1 test1; public Test2(Itest1 test1) { this.test1 =

我尝试做一件非常简单的事情:为属性设置初始值,调用回调应该修改属性值的方法,并在最后读取属性

类Test2正在使用ITest1自动化一些操作

public interface ITest1
{
    decimal Value { get; set; }
    void Increment();
}

public class Test2
{
    ITest1 test1;
    public Test2(Itest1 test1)
    {
        this.test1 = test1;
    }

    public void Increment()
    {
        this.test1.Increment();
    }
    public Get()
    {
       return this.test1.Value;
    }
}
为了实现这种行为,我设置了以下测试:

[TestClass]
public class Test2Test
{
    private Test2 test2;
    private decimal value;

    [TestInitialize]
    public void Setup()
    {
        var test1Mock = new Mock<ITest1>();
        test1Mock.SetupGet(m => m.Value).Returns(value);
        test1Mock
            .Setup(m => m.Increment())
            .Callback(() => value++);

        this.test2= new Test2(test1Mock.Object);
    }

    [TestMethod]
    public void Get_Returns0()
    {
        Assert.AreEqual(0, this.test2.Get());
    }

    [TestMethod]
    public void Get_AfterIncrement_Returns1()
    {
        this.test2.Increment();
        Assert.AreEqual(1, this.test2.Get());
    }
}
[TestClass]
公共类Test2Test
{
私有Test2 Test2;
私有十进制值;
[测试初始化]
公共作废设置()
{
var test1Mock=new Mock();
test1Mock.SetupGet(m=>m.Value).返回(Value);
测试1锁
.Setup(m=>m.Increment())
.Callback(()=>value++);
this.test2=新的test2(test1Mock.Object);
}
[测试方法]
公共无效获取_Returns0()
{
arenequal(0,this.test2.Get());
}
[测试方法]
public void Get_AfterIncrement_Returns1()
{
this.test2.Increment();
aresequal(1,this.test2.Get());
}
}

第二个测试始终返回0。为什么会发生这种情况?

解决方案是返回操作而不是变量,如下所示:

.Return(()=>value)
而不是
。Return(value)


找到答案。

解决方案是返回操作而不是变量,如下所示:

.Return(()=>value)
而不是
。Return(value)


找到答案。

@HamletHakobyan是一个拼写错误,修复了谢谢。如果您找到答案,请将其作为答案发布。@HamletHakobyan是一个拼写错误,修复了谢谢。如果您找到答案,请将其作为答案发布。