在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ java,不修改業(yè)務代碼和系統(tǒng)時間的情況下,測試不同業(yè)務

java,不修改業(yè)務代碼和系統(tǒng)時間的情況下,測試不同業(yè)務

直接上代碼

    //業(yè)務代碼
    private void business() {
        Date date = new Date();//獲取系統(tǒng)當前時間

        boolean flat = true;//根據(jù)系統(tǒng)當前時間判斷是否是白天,判斷邏輯忽略

        if (flat) {
            System.out.println("是白天");//白天業(yè)務
        } else {
            System.out.println("是黑夜");//黑夜業(yè)務
        }
    }

    @Test
    public void test3() {
        //如何在不手動修改操作系統(tǒng)時間、不修改業(yè)務代碼的情況下,測試兩種業(yè)務
        business();
    }

緣起

在計算時間時,搜了一下,joda-time好像不錯

看文檔時,有這么一段:
圖片描述

但是發(fā)現(xiàn),SystemFactory和SystemClock都不知道是何方神圣,,,

回答
編輯回答
刮刮樂

java8的Clock,正常運行的時候注入system,測試的時候注入fixed

2018年8月19日 03:58
編輯回答
未命名

既然你要測試不同時間,那為什么在business方法里把時間寫死呢??梢詫r間提到參數(shù)上?。?/p>

//業(yè)務代碼
private void business(Date date) {
    boolean flat = true;//根據(jù)系統(tǒng)當前時間判斷是否是白天,判斷邏輯忽略
    if (flat) {
        System.out.println("是白天");//白天業(yè)務
    } else {
        System.out.println("是黑夜");//黑夜業(yè)務
    }
}

測試時候傳入不同時間的Date對象就可以了。

2018年8月13日 18:12