iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
Mobile Development

在 iOS 專案上加上 Unit testing - 因為 You need testing系列 第 18

D18 - 在 iOS 專案加上測試-You need testing {台股小工具 app-StockRecord InputView 和 RecordStore 的組裝}

  • 分享至 

  • xImage
  •  

接下來進行新增股票的 StockRecordInputView 和 RecordStore 的組裝。SettlementRemindInputView 中加入這三個 func

//  SettlementRemindInputView.swift

let dateUtility: DateUtility = .init()

/// 將畫面上的資料轉換成 StockTradingRecord data model
    private func getRecord() -> StockTradingRecord {
        
        return store.getRecord(stockID: stockID,
                               stockName: stockName,
                               tradingSide: tradingSide,
                               tradingShares: Int(tradingShares) ?? 0,
                               tradingAmount: Int(tradingAmount) ?? 0,
                               tradingDateStr: dateUtility.getString(from: tradingDate))
    }
    
    /// 將 rcord 加進 store 裡面
    private func add(_ record: StockTradingRecord) {
        store.add(record)
    }
    
    /// 把 record 加進 store 和 dismiss 組裝起來
    private func storeRecordAndDismiss() {
        let record = getRecord()
        add(record)
        dismiss()
    }

然後,將 button 發動的 closure 中加入record store 和 dismiss 的連動

Button {
                    print("add did tap")
                    /// 當 add 按鈕被按了後,將畫面上的 record 記錄在 store 裡面,並 dismiss()
                    storeRecordAndDismiss()
                } label: {
                    Text("新增")
                        .frame(minWidth: 140, minHeight: 40)
                        .border(.blue)
                }

然後我們試著加一筆股票交易紀錄

https://ithelp.ithome.com.tw/upload/images/20230929/20140622he1C1DjqMl.png

在畫面上,看到一筆紀錄。

https://ithelp.ithome.com.tw/upload/images/20230929/201406226F2DIhoosE.png

不過,如果再重新打開 app,紀錄都會不見,因為我們並沒有把紀錄存在可長期紀錄的元件。

所以下一篇,我們就來實作將資料存在 UserDefaults 的物件,而且也會提到 UserDefaults 的測試方法

Reference

https://developer.apple.com/documentation/swiftui/restoring_your_app_s_state_with_swiftui


上一篇
D17 - 在 iOS 專案加上測試-You need testing {台股小工具 app-與 UI 進行組裝}
下一篇
D19 - 在 iOS 專案加上測試-You need testing {台股小工具 app-測 UserDefaults part1}
系列文
在 iOS 專案上加上 Unit testing - 因為 You need testing32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言