moq使用多个参数设置类的方法,但只需要一个

时间:2014-02-04 01:46:35

标签: parameters arguments return moq matching

您好我已经尝试过模拟和分类并按照以下方式进行设置。我只尝试过一次断言返回是真的。我已经厌倦了用String替换Input和使用int的Output类,它的工作正常。有什么建议吗?非常感谢你

[TestFixture]
class TestSample
{
[Test]
public void Test1()
{
    Mock mockObject = new Mock();
    var mockInput1 = new Mock();
    var mockInput2 = new Mock();
    var mockOutPut1 = new Mock();
    var mockOutPut2 = new Mock();
    mockObject.Setup(x => x.Get(mockInput1.Object)).Returns(mockOutPut1.Object);
    mockObject.Setup(x => x.Get(mockInput2.Object)).Returns(mockOutPut2.Object);

    var returned = mockObject.Object.Get(mockInput1.Object);
    Assert.AreEqual(mockOutPut1, returned);

    returned = mockObject.Object.Get(mockInput2.Object);
    Assert.AreEqual(mockOutPut2, returned);


    }


public class SampleClass
{
    public virtual OutputClass Get(InputClass a)
    {
        return null;
    }
}

public class InputClass {}
public class OutputClass {}

1 个答案:

答案 0 :(得分:0)

你想在这里测试什么?一切都被嘲笑了!

你应该嘲笑你想要测试它的课程! 例如,如果您有一个主类和一个存储库来从数据库获取数据,您应该模拟repo并获取要使用的假数据并测试您的主类。但是如果你嘲笑你的主要类和你的回购,那么就不要测试任何东西;)

得到它? ;)