zoukankan      html  css  js  c++  java
  • Moq步步惊心之第一步

    我们在写Unit Test的时候是避免不了写Mock的。好的Mock库可以给我们极大的方便。在C++里我们有google mock库。在.NET里我们可以使用开源的Moq库。

    你可以通过这个链接来访问Moq的官方网站: http://code.google.com/p/moq/wiki/QuickStart

    这这篇文档里,我们将通过一个小的例子来学习如何使用Moq库。

    public interface IFoo
        {
            string GetClientName();
    
            void SetClientName(string strName);
    
        }
    
        class FooClient
        {
            public IFoo Foo { get; set; }
    
            public bool IsVIP()
            {
                return Foo.GetClientName().Equals("Bill Gates");
            }
    
            public void RenameClient()
            {
                Foo.SetClientName("Bill Gates");
            }
        }
    

     在代码里我们有一个interface, IFoo,同时还有另外一个类, FooClient。FooClient通过调用IFoo的方法来获取 或者设置值。

    在我们的Unit Test里,我们需要来test FooClient的两个方法。这个时候我们可以来Mock IFoo这个接口。

    [TestMethod]
            public void TestMoqInstalledSuccessfully()
            {
                //
                // TODO: Add test logic here
                //
                Mock<IFoo> foo = new Mock<IFoo>();
                foo.Setup(fw => fw.GetClientName()).Returns("Bill Gates");
    
                FooClient fooClient = new FooClient();
                fooClient.Foo = foo.Object;
    
                fooClient.IsVIP();
            }
    
            [TestMethod]
            public void Test_SetClientName()
            {
                //
                // TODO: Add test logic here
                //
                Mock<IFoo> foo = new Mock<IFoo>();
                
                FooClient fooClient = new FooClient();
                fooClient.Foo = foo.Object;
    
                fooClient.RenameClient();
    
                foo.Verify(fw => fw.SetClientName("Bill Gates"));
            }
    
  • 相关阅读:
    性能测试总结(一)测试流程
    WSDL入门
    Python中的while循环和for循环
    python中的变量
    吴恩达《机器学习》章节2单变量线性回归
    吴恩达《机器学习》章节1绪论:初识机器学习
    新式类多继承的查找顺序
    python2x和python3x的一些区别
    类方法和静态方法
    @property的使用
  • 原文地址:https://www.cnblogs.com/xiaxi/p/2230289.html
Copyright © 2011-2022 走看看