gpt4 book ai didi

ios - 结构属性初始化测试

转载 作者:行者123 更新时间:2023-12-05 01:25:57 28 4
gpt4 key购买 nike

XCTest 代码覆盖表明我应该对 HealthStat 的 id 属性初始化进行测试。测试它的最佳方法是什么?

struct HealthStat: Identifiable {
let id = UUID()
let stat: HKQuantity?
let date: Date
}

最佳答案

您要测试的是什么?在当前的实现中,很难对它进行任何测试,因为您无法控制 UUID 的值。为了提高可测试性,您必须注入(inject) UUID(或 UUID 本身)的创建。

例如,您可以将代码更新为...

struct HealthStat: Identifiable {
let id: UUID
let stat: HKQuantity?
let date: Date

init(id: UUID = UUID(), stat: HKQuantity?, date: Date) {
self.id = id
self.stat = stat
self.date = date
}
}

现在您可以测试传递给模型的任何 id 是否存储在 id 中。而且,在生产代码中,它将获得使用 UUID() 创建的默认 UUID。

但是有无数种方法可以测试这种东西。

我想这是依赖注入(inject)的最基本版本。本例中的依赖项是 UUID 的创建。您必须注入(inject)它才能使其可测试。

搜索 Swift Dependency Injection 以了解更多关于它可以为您做什么的信息。

关于ios - 结构属性初始化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70582515/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com