문자열의 Any 및 Enum case는 문자열입니다.
문서
환경
이 글의 코드는
id 타입이 흔들릴 때.
id의 유형은 난잡합니다. String이나 Int가 될 수 있습니다.
이동하고 싶을 때 사용할 수 있다
let id1: Any = "1" // String
let id2: Any = 1 // Int
String(describing:)을 사용하면 내용이 틀리지 않고 String으로 바뀝니다.let stringId1 = String(describing: id1) // "1"
let stringId2 = String(describing: id2) // "1"
그럼 이런 작법은 필요 없겠지// value のタイプは Any
if let value = value as? String {
return value
} else if let value = value as? Int {
return String(value)
} else {
// ry
}
enum 이름 인쇄
참여한 프로젝트에는 이런 테스트 조수가 있다.
// 定義された enum
enum FruitType: Int {
// Just put some random numbers over here
case dragonFruit = 777
case apple = 988
}
// テストヘルバ
func createActivity(type: FruitType, raw: Int) {
XCTContext.runActivity(named: "") { _ in
XCTAssertEqual(raw, type.rawValue)
}
}
// テストケース
import XCTest
@testable import YourTargetName
class FruitTypeTests: XCTestCase {
func testDefinitions() {
XCTContext.runActivity(named: "test definitions of FruitType's cases") { _ in
createActivity(type: .dragonFruit, raw: 777)
createActivity(type: .apple, raw: 988)
}
}
}
테스트 조수 중name을 정의하지 않았기 때문에 테스트 결과는 이렇게 잘 알려지지 않은 보고서가 됩니다.name의 매개 변수에rawValue를 넣을 수도 있지만, 이해하기 어렵다.그런 마음이 들어요.
어쨌든 상자 이름을 표시하고 싶어요!
개선을 위해 이렇게 조수를 개조해 보면
func createActivity(type: FruitType, raw: Int) {
let typeName = String(describing: type)
XCTContext.runActivity(named: "test the raw value of .\(typeName) is \(raw)") { _ in
XCTAssertEqual(raw, type.rawValue)
}
}
테스트 보고서도 그렇습니다.다그치다
아무튼 두 개 써봤어요!여기서 마치겠습니다.
이상한 점, 잘못된 점, 댓글란에 꼭 가세요.
마지막
대만산 용과는 아주 맛있어요!
Reference
이 문제에 관하여(문자열의 Any 및 Enum case는 문자열입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vc7/items/91070050646ecbf21ae3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)