繁体   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