【问题标题】:Do I need to create a Unit Test Case class for a Struct in Swift?我需要为 Swift 中的结构创建单元测试用例类吗?
【发布时间】:2020-02-25 14:52:25
【问题描述】:

我想知道是否需要创建一个单元测试用例类甚至一个单独的单元测试方法来测试它的模型是一个结构?

我尝试按照 TDD 为我的移动应用创建注册功能。在一张纸上,我已经勾勒出我需要创建的内容:

  • ViewController 类,
  • 演讲者课堂,
  • 一个验证器类,用于验证模型字段值,如电子邮件地址格式和密码长度等...
  • WebService 类发送带有用户详细信息的 HTTP 请求,
  • 注册表单请求模型结构。将发送到我的服务器的模型结构。
  • 注册响应模型结构。用于将服务器响应转换为 Swift 结构的结构。

我想知道是否需要创建一个单元测试用例类甚至一个单独的单元测试方法来测试它的模型是一个结构?结构没有可失败的初始化器。而且因为 Swift 结构有一个成员初始化器,所以真的没有什么要测试的......

例如。 SignupModel.swift - 一个单独的文件:

struct SignupModel {
    let firstName: String
    let lastName: String
    let email: String
    let password: String
}

我真的需要创建一个测试方法吗:

    func testInit_SignupModelExists() {
       let signupModel = SignupModel(firstName:"John", lastName: "Doe", email: "test@test.com", password: "12345678")


       XCTAssertNotNil(signupModel)
    }

你们在遵循 TDD 时会创建这种单元测试吗?

【问题讨论】:

  • 也许与 TDD 无关,但在为使用该结构的方法编写单元测试时,通常会涵盖这样的结构。
  • @JoakimDanielson 谢谢!这其实是个好主意。我将仔细检查代码覆盖率,看看它是否涵盖了包含单个结构的文件。
  • 太棒了!包含单个 Struct 的 Swift 文件甚至没有在代码覆盖率报告中列出。我现在非常有信心,以最简单的形式不需要测试用例。

标签: swift unit-testing xctest xctestcase


【解决方案1】:

您需要使用单元测试来测试您的功能。在这里,没有任何功能。

如果您的 init 函数可能返回 nil,您可能需要。但是在这种情况下,您的初始化程序永远不会返回任何值,而是您的创建。所以我们不能说这是一个功能。

【讨论】:

  • 我也是这么想的...如果我要为 Model 结构创建单元测试,那么它更像是在测试 Apple 的 Swift 语言,而不是我编写的代码。
  • @Simplyi 没错。根本不要测试 Apple 的代码,甚至不要测试 Cocoa Touch 框架。只测试做的事情。
  • 谢谢你,@Matt ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 2011-06-10
  • 2021-07-21
  • 1970-01-01
  • 2016-03-25
相关资源
最近更新 更多