介紹完所有的道館功能後,回頭來複習一下在[Day 3]列出的道館功能項目:
- 真實世界的地標(Landmark)
- 記錄玩家到過的地方
- 補給道具
- 道館對戰(2017更新)
- 團體戰(2017新增)
- 給贊助商打廣告或活動(2020新增)
道館對戰
與團體戰
都涉及到手機端
與Pokémon Go主機端
的連動,因此歸在『端到端測試
』。整合測試
』剩下來的部分就是接下來要提的單元測試
。
do4flip function 說明:
第一次翻轉會紀錄玩家
來過此道館,因此可以開始進行道館鍊成
,然後還會取得道具。do4flip
的else區段
執行此一行為。do4flip
的if區段
執行此一行為。最糟糕的情境是什麼呢?(Arrangement)
當玩家明明第一次到達道館並翻轉牌子,結果沒有紀錄玩家來過,從此剝奪該玩家
鍊成該道館的機會。
行為:(Action)
玩家第一次來到道館時,isArrival=false 必須執行
do4flip的else區段
。
研判結果:(Assertion)
do4flip的回傳值必須是
更新玩家已到過此道館記錄給DB,再給玩家道具!
否則
將與預期規格不符,測試失敗。
測試程式中,故意不給expected=更新玩家已到過此道館記錄給DB,再給玩家道具!
結果:
想一想,如果今天PokemonGym
被改版,在有提供PokemonGymTest
的情況下,修改者不小心將isArrival變成static變數
又或者在規格不變前提下
動到do4flip,連測試都跑不過就別談
git commit的動作了。反之,沒有提供的話,只能從git上去抓出『兇手就是commit的那位』。
看完這篇是不是覺得只要
測完最壞的條件
就行嗎?
千萬不要被義勇先生
羨慕。
什麼是最壞的情況?只有知道全部的狀況時才能選出最壞
。
太猛啦!
以為是遊戲日記,沒想到變成技術文章了!
哈哈, 因為只有學到兩三事
, 所以遊戲功能面介紹要累積到一個程度才能產出一篇技術文章