[{"data":1,"prerenderedAt":122},["ShallowReactive",2],{"repo-uber-ios-snapshot-test-case":3,"i18n-uber-ios-snapshot-test-case-zh-CN":119},{"mirrorPool":4,"detail":13},[5,9],{"key":6,"label":7,"base":8,"type":6},"github","mirror.github","https:\u002F\u002Fgithub.com\u002F",{"key":10,"label":11,"base":12,"type":10},"auto-proxy","mirror.autoProxy","https:\u002F\u002Fgithub.xxlab.tech\u002F",{"owner":14,"repo":15,"repoId":16,"repoUrl":17,"starCount":18,"language":19,"description":20,"languages":21,"screenshots":27,"homepage":28,"pushedAt":29,"ownerAvatar":30,"ownerName":31,"ownerBio":32,"lastSyncTime":33,"lastReleaseTime":34,"tags":35,"license":36,"category":37,"subgroup":38,"releases":39},"uber","ios-snapshot-test-case",114173355,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case",1865,"Objective-C","Snapshot view unit tests for iOS",{"Objective-C":22,"Swift":23,"Shell":24,"Starlark":25,"Ruby":26},87.7,4.9,3.3,2.1,1.9,[],"","2025-12-02","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F538264?v=4","Uber Open Source","Open Source at Uber","2026-09-28T15:20:53.360908+00:00","2021-10-22T03:40:34Z",[],"MIT","development","开发库\u002F框架",[40,52,62,73,83,93,102,110],{"tag":41,"publishAt":34,"semVer":42,"prerelease":45,"assets":46},"8.0.0",[43,44,44],8,0,false,[47],{"fileName":48,"sizeMb":49,"sha256":28,"downloadCount":50,"originUrl":51},"FBSnapshotTestCase.framework.zip",63.84,1110,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F8.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":53,"publishAt":54,"semVer":55,"prerelease":45,"assets":57},"7.0.0","2021-08-24T20:55:38Z",[56,44,44],7,[58],{"fileName":48,"sizeMb":59,"sha256":28,"downloadCount":60,"originUrl":61},63.76,791,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F7.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":63,"publishAt":64,"semVer":65,"prerelease":45,"assets":68},"6.2.0","2019-10-11T23:52:38Z",[66,67,44],6,2,[69],{"fileName":48,"sizeMb":70,"sha256":28,"downloadCount":71,"originUrl":72},67.53,43070,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.2.0\u002FFBSnapshotTestCase.framework.zip",{"tag":74,"publishAt":75,"semVer":76,"prerelease":45,"assets":78},"6.1.0","2019-07-01T17:29:00Z",[66,77,44],1,[79],{"fileName":48,"sizeMb":80,"sha256":28,"downloadCount":81,"originUrl":82},68.2,4813,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.1.0\u002FFBSnapshotTestCase.framework.zip",{"tag":84,"publishAt":85,"semVer":86,"prerelease":45,"assets":88},"6.0.3","2019-04-01T18:58:43Z",[66,44,87],3,[89],{"fileName":48,"sizeMb":90,"sha256":28,"downloadCount":91,"originUrl":92},68.19,14592,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.3\u002FFBSnapshotTestCase.framework.zip",{"tag":94,"publishAt":95,"semVer":96,"prerelease":45,"assets":97},"6.0.2","2019-03-27T00:27:59Z",[66,44,67],[98],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":100,"originUrl":101},68.11,570,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.2\u002FFBSnapshotTestCase.framework.zip",{"tag":103,"publishAt":104,"semVer":105,"prerelease":45,"assets":106},"6.0.0","2019-01-28T19:14:52Z",[66,44,44],[107],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":108,"originUrl":109},1740,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":111,"publishAt":112,"semVer":113,"prerelease":45,"assets":115},"5.0.2","2019-01-15T00:59:09Z",[114,44,67],5,[116],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":117,"originUrl":118},5030,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F5.0.2\u002FFBSnapshotTestCase.framework.zip",{"description":120,"readmeHtml":121},"一款用于iOS的视图单元测试框架，通过对比视图的屏幕截图与参考图来验证UI的正确性。","\u003Ch2 id=\"项目概述\">项目概述\u003C\u002Fh2>\u003Cp>\u003Ccode>iOSSnapshotTestCase\u003C\u002Fcode>（原\u003Ccode>FBSnapshotTestCase\u003C\u002Fcode>）是一个用于iOS的视图单元测试框架。它能够对\u003Ccode>UIView\u003C\u002Fcode>或\u003Ccode>CALayer\u003C\u002Fcode>进行截图，并与代码库中存储的参考图像进行比对，若两者不一致则测试失败。这解决了UI代码难以进行逻辑测试的痛点。\u003C\u002Fp>\n\u003Ch2 id=\"主要功能\">主要功能\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>快照测试\u003C\u002Fstrong>：自动捕获并对比视图的屏幕截图。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>清晰的失败反馈\u003C\u002Fstrong>：当测试失败时，会提供图像差异，直观显示变化。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>易于集成\u003C\u002Fstrong>：支持CocoaPods、Carthage和Swift Package Manager。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>自动化命名\u003C\u002Fstrong>：根据测试类和选择器自动命名参考图像。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"适用人群\">适用人群\u003C\u002Fh2>\u003Cul>\n\u003Cli>iOS开发者\u003C\u002Fli>\n\u003Cli>需要确保UI组件在各种状态下显示正确的团队\u003C\u002Fli>\n\u003Cli>希望将UI测试自动化的质量保证工程师\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"快速上手\">快速上手\u003C\u002Fh2>\u003Col>\n\u003Cli>通过CocoaPods、Carthage或Swift Package Manager将框架添加到项目中。\u003C\u002Fli>\n\u003Cli>在测试Scheme中设置\u003Ccode>FB_REFERENCE_IMAGE_DIR\u003C\u002Fcode>环境变量，指向存储参考图像的目录。\u003C\u002Fli>\n\u003Cli>创建一个继承自\u003Ccode>FBSnapshotTestCase\u003C\u002Fcode>的测试类，并在测试方法中调用\u003Ccode>FBSnapshotVerifyView\u003C\u002Fcode>。\u003C\u002Fli>\n\u003Cli>首次运行测试时，在\u003Ccode>setUp\u003C\u002Fcode>方法中开启\u003Ccode>self.recordMode = YES;\u003C\u002Fcode>来生成参考图像。\u003C\u002Fli>\n\u003Cli>关闭记录模式，再次运行测试进行验证。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"核心优势\">核心优势\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>直观验证\u003C\u002Fstrong>：通过图像差异直观展示UI的变化。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>减少断言\u003C\u002Fstrong>：用视觉对比代替繁琐的矩形断言。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>社区支持\u003C\u002Fstrong>：源自Uber和Facebook，有良好的社区基础。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"系统要求\">系统要求\u003C\u002Fh2>\u003Cul>\n\u003Cli>操作系统：iOS、macOS（用于测试）\u003C\u002Fli>\n\u003C\u002Ful>\n",1790699422218]