zoukankan      html  css  js  c++  java
  • RhinoMock初探

    官方wiki:http://www.ayende.com/wiki/Rhino+Mocks.ashx

    =========================================

    接口Mock:

    来一段小代码

    static void Main(string[] args)
    {
        MockRepository mock = new MockRepository();
        ITest tmp = mock.StrictMock<ITest>();
        tmp.Execute();
    }

    很简单3行,ITest接口有一个Execute方法。

    执行结果是没有报异常,程序正常运行至结束。

    下面看看如何运用到单元测试中:

    public interface ITest
    {
        int Execute();
    }

    这里把接口方法修改一下。

    static void Main(string[] args)
    {
        MockRepository mock = new MockRepository();
        ITest tmp = mock.StrictMock<ITest>();
        Expect.Call(tmp.Execute()).Return(100);
        mock.ReplayAll();//重播,必须执行这一条
        Console.WriteLine("Return Value: "+tmp.Execute());
        mock.VerifyAll();//释放Mock仓库
        Console.ReadLine();
    
        //Result:
        //Return Value: 100
    }


    这样返回结果就是100了。

    ==================================

    让属性可以在外部修改:

    public interface ITest
    {
        int Id { get; set; }
        int Execute();
    }

    首先给接口增加Id属性

    然后调用一下PropertyBehavior

    static void Main(string[] args)
    {
        MockRepository mock = new MockRepository();
        ITest tmp = mock.StrictMock<ITest>();
        Expect.Call(tmp.Id).PropertyBehavior();
        tmp.Id = 10;//如果不用上面这句,属性外部修改会报错.
        mock.ReplayAll();
        Console.WriteLine("ID: "+ tmp.Id);
        mock.VerifyAll();
        Console.ReadLine();
    
        //Result:
        //ID: 10
    }
  • 相关阅读:
    iOS 关于使用xib创建cell的两种初始化方式
    KVO的初级使用
    通知的初级使用
    C语言的变量 常量
    C语言的编译 链接
    1 hello word
    java 中 == 与 equals引出的字符串比较
    02PSP0级及登陆界面开发
    00软工课程引言
    06动手动脑
  • 原文地址:https://www.cnblogs.com/hont/p/3234345.html
Copyright © 2011-2022 走看看