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

  • 相关阅读:
    团队项目-选题报告
    1
    第二次结对编程作业
    第2组 团队展示
    第02组 Alpha冲刺(4/6)
    第02组 Alpha冲刺(3/6)
    第02组 Alpha冲刺(2/6)
    第02组 Alpha冲刺(1/6)
    第02组 团队GIT现场编程实战
    团队项目-需求分析报告
  • 原文地址:https://www.cnblogs.com/cando/p/2313049.html
Copyright © 2020-2023  润新知