Files
everything-claude-code/docs/zh-CN/rules/swift/testing.md
zdoc.app ada4cd75a3 docs(zh-CN): sync Chinese docs with latest upstream changes (#304)
* docs(zh-CN): sync Chinese docs with latest upstream changes

* update

---------

Co-authored-by: neo <neo.dowithless@gmail.com>
2026-03-02 22:28:27 -08:00

47 lines
1.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
paths:
- "**/*.swift"
- "**/Package.swift"
---
# Swift 测试
> 本文档在 [common/testing.md](../common/testing.md) 的基础上扩展了 Swift 特定的内容。
## 框架
对于新测试,使用 **Swift Testing** (`import Testing`)。使用 `@Test``#expect`
```swift
@Test("User creation validates email")
func userCreationValidatesEmail() throws {
#expect(throws: ValidationError.invalidEmail) {
try User(email: "not-an-email")
}
}
```
## 测试隔离
每个测试都会获得一个全新的实例 —— 在 `init` 中设置,在 `deinit` 中拆卸。测试之间没有共享的可变状态。
## 参数化测试
```swift
@Test("Validates formats", arguments: ["json", "xml", "csv"])
func validatesFormat(format: String) throws {
let parser = try Parser(format: format)
#expect(parser.isValid)
}
```
## 覆盖率
```bash
swift test --enable-code-coverage
```
## 参考
关于基于协议的依赖注入和 Swift Testing 的模拟模式,请参阅技能:`swift-protocol-di-testing`