package Ġcom . easy kotlin . learn . study 1 1 čĊč Ċ import Ġio . mock k .* č Ċ import Ġio . mock k . impl . annotations . Rel ax ed Mock K č Ċ import Ġorg . junit . Before č Ċ import Ġorg . junit . Test čĊč Ċ /** čĊ Ġ* Ġ 1 . ĠæĮĩå®ļ æĸ¹æ³ķ è¢« åĳ¼ åı« çļĦ æ¬¡ æķ¸ åı¯ä»¥åľ¨ åīį éĿ¢ åĬł ä¸Ĭ Ġexactly čĊ Ġ* Ġ 2 . Ġæ ĥ ³ è¦ģ é© Ĺ èŃ ī æĸ¹æ³ķ è¢« åĳ¼ åı« çļĦ éłĨ åºı æĢ§ åı¯ä»¥ä½¿çĶ¨ Ġverify Sequence Ġ è·Ł Ġverify Order čĊ Ġ*/ č Ċ class ĠVerify Adv Test Ġ{ čĊčĊĠĠĠ Ġ@ Rel ax ed Mock K čĊĠĠĠ Ġlateinit Ġvar Ġmother : ĠM other čĊčĊĠĠĠ Ġlateinit Ġvar Ġkid : ĠK id čĊčĊĠĠĠ Ġ@ Before čĊĠĠĠ Ġfun ĠsetUp () Ġ{ čĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this ) čĊĠĠĠĠĠĠĠ Ġkid Ġ= ĠK id ( mother ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Want Money () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æ¨¡ æĭŁ æĸ¹æ³ķ çļĦ è¿ĶåĽŀ åĢ¼ čĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmother . give Money () Ġ} Ġreturns Ġ 4 5 6 . 3 2 1 čĊčĊĠĠĠĠĠĠĠ Ġ// çľŁ å®ŀ è°ĥçĶ¨ čĊĠĠĠĠĠĠĠ Ġkid . want Money () čĊĠĠĠĠĠĠĠ Ġkid . want Money () čĊčĊĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ æĸ¹æ³ķ è¢« è°ĥçĶ¨ 2 æ¬¡ čĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġmother . inform ( any ()) Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ æĸ¹æ³ķ çļĦ æī§è¡Į é¡ºåºı čĊčĊĠĠĠĠĠĠĠ Ġprintln ( kid . money ) čĊĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Want Money 2 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æ¨¡ æĭŁ æĸ¹æ³ķ çļĦ è¿ĶåĽŀ åĢ¼ čĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmother . give Money () Ġ} Ġreturns Ġ 4 5 6 . 3 3 3 3 čĊčĊĠĠĠĠĠĠĠ Ġ// çľŁ å®ŀ è°ĥçĶ¨ čĊĠĠĠĠĠĠĠ Ġkid . want Money () čĊčĊĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ æĸ¹æ³ķ è¢« è°ĥçĶ¨ 2 æ¬¡ čĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġmother . inform ( any ()) Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ æĸ¹æ³ķ åĲĦ æī§è¡Į äºĨ 1 æ¬¡ čĊĠĠĠĠĠĠĠ Ġverify Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmother . inform ( any ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmother . give Money () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġprintln ( kid . money ) čĊĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Want Money 3 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æ¨¡ æĭŁ æĸ¹æ³ķ çļĦ è¿ĶåĽŀ åĢ¼ čĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmother . give Money () Ġ} Ġreturns Ġ 4 5 6 . 3 3 3 3 čĊčĊĠĠĠĠĠĠĠ Ġ// çľŁ å®ŀ è°ĥçĶ¨ čĊĠĠĠĠĠĠĠ Ġkid . want Money () čĊčĊĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ æĸ¹æ³ķ è¢« è°ĥçĶ¨ 2 æ¬¡ čĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġmother . inform ( any ()) Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ æĸ¹æ³ķ åĲĦ æī§è¡Į é¡ºåºı , verify Sequence Ġ è¦ı å®ļ Ġinform () ĠçļĦ ä¸ĭ ä¸Ģ åĢĭ åŁ · è¡Į çļĦæĸ¹æ³ķ ä¸Ģå®ļ è¦ģ æĺ¯ Ġgive Money () ï¼Į åĲ¦ åī ĩ æ¸ ¬ è© ¦ å¤± æķ Ĺ ãĢĤ čĊĠĠĠĠĠĠĠ Ġverify Sequence Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmother . inform ( any ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmother . give Money () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġprintln ( kid . money ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest Want Money 4 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æ¨¡ æĭŁ æĸ¹æ³ķ çļĦ è¿ĶåĽŀ åĢ¼ čĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmother . give Money () Ġ} Ġreturns Ġ 4 5 6 . 4 4 4 4 čĊčĊĠĠĠĠĠĠĠ Ġ// çľŁ å®ŀ è°ĥçĶ¨ čĊĠĠĠĠĠĠĠ Ġkid . want Money () čĊčĊĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ æĸ¹æ³ķ è¢« è°ĥçĶ¨ 2 æ¬¡ čĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġmother . inform ( any ()) Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ æĸ¹æ³ķ åĲĦ æī§è¡Į é¡ºåºı , verify Order Ġæ ¢ Ŀ ä»¶ æ¯Ķ è¼ ĥ å¯ ¬ é ¬ Ĩ ï¼Į inform () Ġåıª è¦ģ åľ¨ Ġgive Money () Ġ ä¹ĭåīį åŁ · è¡Į åį³åı¯ čĊĠĠĠĠĠĠĠ Ġverify Order Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmother . inform ( any ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmother . give Money () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġprintln ( kid . money ) čĊĠĠĠ Ġ} č Ċ }