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框架)对类进行单元测试。

  • 相关阅读:
    正则表达式
    匿名函数作业
    内置函数&匿名函数
    模拟面试题一
    迭代器
    生成器
    装饰器
    函数
    疑问?
    3,app信息抽取
  • 原文地址:https://www.cnblogs.com/cando/p/2313049.html
Copyright © 2011-2022 走看看