FBSnapshotTestCase 现在是由Uber 维护了。>>> Github 地址:iOSSnapshotTestCase
新建项目时候勾选 tests target ️
如果新建项目时候忘记勾选 tests target,按照下面方式新建一个:File >> New >> Target >> Unit Testing Bundle
导入 iOSSnapshotTestCase
target 'TestDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
target 'TestDemoTests' do
inherit! :search_paths
pod 'iOSSnapshotTestCase'
end
end
iOSSnapshotTestCase 环境配置
Name | Value |
---|---|
FB_REFERENCE_IMAGE_DIR | $(SOURCE_ROOT)/$(PROJECT_NAME)Tests/ReferenceImages |
IMAGE_DIFF_DIR | $(SOURCE_ROOT)/$(PROJECT_NAME)Tests/FailureDiffs |
在如下位置配置参数:
Tests code:
import XCTest
import FBSnapshotTestCase
@testable import TestDemo
class TestDemoTests: FBSnapshotTestCase {
var vc: UIViewController!
override func setUp() {
super.setUp()
vc = SecondViewController()
self.recordMode = true
}
override func tearDown() {
vc = nil
super.tearDown()
}
func testExample() {
FBSnapshotVerifyView(vc.view)
}
}
第一次 Run 的时候需要把 self.recordMode
设置为 true
. 保存作为参照的图,第一次run test 是 failed 的,原因也提示在下图了。第二次 run 就可以把 self.recordMode
设置为 false
.
️踩的坑:
Run tests 的时候遇到 error: