swift-testing-revolutionary
ã»ã¼ã¿ã¤ãã«éãã§ãããå æ¥XCTestã§æ¸ããããã¹ãã±ã¼ã¹ããswift-testingã®ãã¹ãã±ã¼ã¹ã«èªå夿ãããswift-testing-revolutionaryã¨ããã¦ã¼ãã£ãªãã£ãå ¬éãã¾ãããXã ã¨æµãã¦ãã¾ãããããã£ãããªã®ã§ããã°è¨äºã§ãåç¥ãã¦ããã¾ãã
ä½¿ãæ¹
åºæ¬çã«ã¯READMEãã覧ãã ããããã®ãã¼ã«ã¯ãXcodeã³ãã³ããã©ã°ã¤ã³ãPackageãã©ã°ã¤ã³ãCommand Line Interfaceã®3ã¤ã®ä½¿ãæ¹ããµãã¼ããã¦ãã¾ãã
è¶ å¤§éæã«ä»¥ä¸ã®ãããªã¤ã¡ã¼ã¸ãæã£ã¦ããã ãã¨è¯ãã¨æãã¾ãã
å°å ¥æ¹æ³ | é©å¿å¯¾è±¡ | å°å ¥ã®æé | ã«ã¹ã¿ãã¤ãºæ§ |
---|---|---|---|
Xcodeã³ãã³ããã©ã°ã¤ã³ | Xcodeããã¸ã§ã¯ã | â | â |
Packageãã©ã°ã¤ã³ | Swift Package | â | â |
Command Line Interface | ä¸¡æ¹ | â | â |
ã¢ããªã®ãã¹ãã±ã¼ã¹ãªã©ãXcodeããã¸ã§ã¯ãå ã®ãã¹ãã±ã¼ã¹ãç§»è¡ããã«ã¯Xcodeã³ãã³ããã©ã°ã¤ã³ã¨ãã¦å©ç¨ããã®ããªã¹ã¹ã¡ãGUIã®ã¿ã§ç°¡åã«å°å ¥ãå®è¡ã§ãã¾ãã
ãã ããXcodeã®ã³ãã³ããã©ã°ã¤ã³ã®ä»æ§ãå¾®å¦ããã¦ãUnitTestã¿ã¼ã²ããå ¨ä½ããå¤æå¯¾è±¡ã«æå®ã§ãã¾ãããGUIãããã¡ã¤ã«1ã¤ãã¤ãå¤æå¯¾è±¡ã«æå®ã§ããã°ä¾¿å©ã ã£ãã®ã§ãããXcodeå´ã®ãµãã¼ããããã¦ããªãã®ã§ãããéçã§ãã
ãã¹ãã±ã¼ã¹1ã¤ãã¤ã夿ãããå ´åã¯ãCLIãã¼ã«ã¨ãã¦å°å ¥ããèªåã§ãã¡ã¤ã«åãæå®ãã¦ãããã®ãè¯ãã§ãã
$ swift-testing-revolutionary path/to/Tests/ViewModelTests.swift path/to/Tests/RepositoryTests.swift
ã¾ãããããã¯ãã®æ§è³ªä¸ãä¸åº¦å¤æãã¦ãã¾ãã¨ãã使ããªããã¼ã«ã¨ãªã£ã¦ãã¾ãã®ã§ãã¢ããªã±ã¼ã·ã§ã³ã»ããã±ã¼ã¸ã®ä¾åé¢ä¿ã«å«ããããããèªåã§ãã¤ããªã管çããæ¹ãå©ç¨ããããããããã¾ãããSwift Packageããã¤ããªã¨ãã¦ç®¡çããæ¹æ³ã¯æ¨æºã®è¯ãæ¹æ³ããªããç¾ç¶Mintãªã©ã使ã£ã¦å ¥ããã®ãæ¥½ã«æãã¾ãã
swift-testingãå°å ¥ãã¦ãã
swift-testingã®ä¸çªã®å©ç¹ã¯ãæ¢åã®ãã¹ãã±ã¼ã¹ã«å¤æ´ãå ããã«ãä»å¾è¿½å ãããã¹ãã±ã¼ã¹ã®ã¿ãç°¡åã«æ°ãããã®ã«ç§»è¡ã§ããç¹ã§ããã¾ããç°¡åãªããªãã¸ã³ã°ãæ¸ãã°ãXcode 15.3 + Swift 5.10ã§ãå©ç¨ãããã¨ãã§ãã¾ããã¨ããããã§Xcode 16ãå¾ ããã¨ã仿¥ãã使ãã¾ãï¼*1
ä»å¾ã¯ãæ°è¦ãã¹ãã¯swift-testingã§è¨å ¥ãã¦ããããã«ãã¦ãæ¢åã®ãã¹ãã³ã¼ãã®ç§»è¡ã«ãã®ãã¼ã«ãæ´»ç¨ãã¦ããããã°è¯ãã¨æãã¾ãã
ãã ããã®ãã¼ã«ã¯æ¢åã®ãã¹ãã±ã¼ã¹ãæ©æ¢°çã«swift-testingã®ã³ã¼ãã«å¤æããã ããªã®ã§ãèªã¿ããããã¡ã³ããããããã¹ãã«å¤æ´ããã«ã¯ãããªãæ¸ãæãã¯ä¸å¯æ¬ ã§ãã ï¼ä¾ãã°Parameterized Testsãå©ç¨ãããªã©ï¼
æ¸ãæããè¡ãå ´åãããã®ãã¼ã«ã§ä¸åº¦æ©æ¢°çã«å¤æãã¦ãããæ°æ©è½ã®å¯¾å¿ãè¡ã£ã¦ããã¨æ¥½ãªããããã²ç¬¬ä¸æ©ã¨ãã¦å½¹ç«ã¦ã¦ããã ããã°ã¨æãã¾ãã
ä½ã£ã¦ã¿ã¦
å®è£
ã®å¤§é¨åã¯swift-syntaxã®SyntaxRewriter
ã使ã£ã¦ãè¯ãæãã«ã·ã³ã¿ãã¯ã¹ãæ¸ãæããã ãã
SyntaxRewriter
ã®å©ç¨æ¹æ³ã¯ãid:KishikawaKatsumi å
çã®Mastering SwiftSyntaxã®ã»ãã·ã§ã³ã大å¤å½¹ã«ç«ã£ãã
expectationã®ç½®ãæããªã©ãä¼¼ããããªå¤æãç¹°ãè¿ãããå¦çã¯è¯ãæãã«æ½è±¡åãã¦æ¸ããã¨æãã
ç´°ããã¨ããã§ã¯ãSwift Syntaxã«ãããtrivia*2ã®æ±ãã«è¦æ¦ããã
ä¾ãã°ããã¹ãã¡ã½ããã«Macroãã°ãã¼ãã«ã¢ã¯ã¿ã¼ã®ãããªäºãattributeãã¤ãã¦ãã¦ãããã«æ¹è¡ãã¹ãã¼ã¹ãå«ã¾ãã¦ããã±ã¼ã¹ã綺éºã«ç½®æããã®ãããªã大å¤ã ã£ãã
@MainActor func testCanFetchProducts() async await
@MainActor @Test func canFetchProducts() async await
ãã®ä»ããã¾ãã¾ãªã·ã³ã¿ãã¯ã¹ãèæ ®ããå¿ è¦ããã£ããSwiftã¯è¨èªæ©è½ãå¤ããããããããæãæ¼ããããããç¥ããªãã®ã§ãæ°ä»ãããissueãç«ã¦ã¦ããããããå ¨ä½çã«å¤§åãã¹ãã±ã¼ã¹ãè¶³ãã¦ããªãã
ãã®ãããã¯ãã¯ä»å¹´ã®GWã«å¢ãã§ä½ãå§ããæ¦ã宿ãã¦ããã®ã ãã©ã彿ã¯WWDC24åã§ãXcode 16ã«åçæ©è½ãå«ã¾ãã¦ãããããã«ãªã¯ã³ã³ã«ãªãããããã¨ããã¥ã¡ã³ãã¾ã§æ¸ãã¦1ã¶æã»ã©ãèµå ¥ãã«ãã¦ãããWWDC24ã®ãã¨ãXcode 16ã«åçæ©è½ããªããã¨ã確èªãã¦ãæ¬¡ã®æ¥ã«ã¯ããã«publicã«ãããã¨ãã§ããã
GWã«å¢ãã§ä½ã£ã¦ãèµå ¥ãã«ãã¦ããXCTestã§æ¸ããããã¹ãã±ã¼ã¹ãswift-testingã«å¤æãããã¼ã«ãswift-testing-re olutionaryãå ¬éãã¾ããï¼Xcode Build Tools Plugin対å¿ã§GUIããã使ãã¾ãï¼å¸°å½ãããè¨äºãæ¸ãããhttps://t.co/nmcVOoZ02J
— giginet (@giginet) 2024å¹´6æ12æ¥
ã¡ããã©WWDC24æéä¸ã¯ç¾å°ã«ãããã¨ãããããã¼ãã£ã¼ã§åºä¼ã£ãéçºè ã«æ¨æ¶ä»£ããã«ç´¹ä»ãããªã©ãä¼è©±ã®ãã£ããã«ãªã£ã¦è¯ãã£ãã
ãã¤ãããããã«å®£ä¼ãã¾ãã£ãçµæã誰ããSwift Forumã§è¨åãã¦ãããããã¦ãã¦ãã¨ã¦ãããããã ð
ãããããã®ãä½ã£ãããããããã¨ããã§çºä¿¡ãã¾ããã®ãéè¦ã ãªã¨å宿ããããã®ã¨ã³ããªããã®ä¸ç°ã
ã©ãããå©ç¨ãã ãã
ã©ãããå©ç¨ãã ãããå©ç¨å ±åãªã©ãå¯ãããã ãããå¬ããã§ãã