zoukankan      html  css  js  c++  java
  • 用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框架)对类进行单元测试。

  • 相关阅读:
    省选测试42
    省选测试41
    省选测试40
    省选测试39
    python海龟画图生成星星
    Python-列表简介
    Linux系统中设置默认的Java版本
    虚拟机无线网卡桥接失败
    pycharm设置启动图标
    禁用vscode硬件加速
  • 原文地址:https://www.cnblogs.com/cando/p/2313049.html
Copyright © 2011-2022 走看看