簡體   English   中英

如何在 XCTest 中測試 UIFontMetrics UIFont.TextStyle

[英]How to test UIFontMetrics UIFont.TextStyle in XCTest

如何在XCTest單元測試中通過UIFont.TextStyle為具有動態字體大小的UIFont測試給定的UIFontMetrics

var myDynamicFont: UIFont {
    let font = UIFont(name: "Font-Name", size: 42)
    return UIFontMetrics(forTextStyle: .largeTitle).scaledFont(for: font)
}

XCTest 單元測試:

func testMyDynamicFont() {
    ...
    XCTAssertEqual(myDynamicFont.???, .largeTitle) // <-- How to check the given TextStyle?
}

謝謝!

您可以使用SnapshotTesting

func test_myDynamicFont_matchesSnapshot() {
    assertSnapshot(matching: myDynamicFont, as: .dump)
}

帶有.dump 策略的快照將產生類似的結果:

- <UICTFont> font-family: ".SFUI-Regular"; font-weight: normal; font-style: normal; font-size: 42.00pt

或者您可以使用您的視圖來生成.image 快照並匹配它:

func test_label_matchesSnapshot() {
    let label = UILabel()
    label.text = "some text"
    label.sizeToFit()
    label.font = myDynamicFont
    assertSnapshot(matching: label, as: .image, record: true)
}

這將產生圖像快照:

在此處輸入圖像描述

並且每次運行測試時都會匹配它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM