• 用Groovy方式实现接口便于单元测试和协作开发


    在现代的软件开发中,应用系统往往被划分为多个模块以降低系统的复杂度,同时也便利于开发人员开发和测试。本文着重说明采用Groovy方式如何便于协作开发。

    OrderBook 团队在开发订单管理模块,编写了一个接口

    package art.groovy.order;

    public interface Order {
        int place();
    }

    Billing团队取得订单,并编写支付的实现。

    package art.groovy.billing;

    import art.groovy.order.Order;

    public class BillingManager {
        public int processAndNotify(Order order){
            //Suppose the order placement is OK
            if (order.place() == 1){
                //Notify the participant
                return 1;
            }
            return 0;
        }
    }

    因为Order的接口还没有实现,为了使得BillingManager能够被单元测试,我们对Order接口添加Mock实现

    package art.groovy.billing

    import art.groovy.order.Order
    import org.junit.Test


    import static org.junit.Assert.*;

    class BillingManagerTest {
       
        @Test
        void process(){
            def order = { 1 } as Order
            def billingManager = new BillingManager()
            assert workflowEngine.processAndNotify(order) == 1
        }
    }

    以上的代码可以看出, Groovy的动态语言特性让我们能够更容易(相对于其他的Mock框架)对类进行单元测试。

  • 相关阅读:
    190. Reverse Bits
    150. Evaluate Reverse Polish Notation
    【UML】状态图与活动图
    【UML】类图与对象图
    【UML】用例图
    【运维】Dell R710如何开启VT服务
    【运维】Dell R710如何做Raid0与Raid5
    【运维】略谈Raid级别
    【VMware vSphere】VMware vSphere简单了解
    【Linux】在Linux上安装VNC
  • 原文地址:https://www.cnblogs.com/cando/p/2313049.html
Copyright © 2020-2023  润新知