我有一个测试用例,断言一个类符合协议。
let sut = SomeClass()
..........
func test_some_class_conform_to_protocol() {
XCTAssertTrue((sut as Any) is OverlayManagerType)
}
我正在尝试使用符合协议的struct
实施相同的测试,但是该测试始终失败。
有可能实现这一目标吗?
编辑
我已经添加了我的结构。我正在遵循TDD方法,因此目前尚未实现。
protocol CountManagerType {
}
struct CountManager: CountManagerType {
}
我的测试是
func test_count_manager_conform_to_protocol() {
XCTAssertTrue((sut as Any) is CountManagerType)
}
答案 0 :(得分:0)
在下面的示例中,您的代码对我来说很好用
protocol CountManagerType {
}
struct CountManager1: CountManagerType {
}
struct CountManager2 {
}
let c1 = CountManager1()
print(((c1 as Any) is CountManagerType)) // true
let c2 = CountManager2()
print(((c2 as Any) is CountManagerType)) // false
答案 1 :(得分:0)
我在操场上运行了这段代码,看来还可以:
import UIKit
import XCTest
protocol CountManagerType {
}
struct CountManager: CountManagerType {
}
struct CountManager1 {
}
class CountManagerTests: XCTestCase {
override func setUp() {
super.setUp()
}
func test_countmanager_conform_to_protocol() {
XCTAssertTrue((CountManager() as Any) is CountManagerType)
}
func test_countmanager1_conform_to_protocol() {
XCTAssertTrue((CountManager1() as Any) is CountManagerType)
}
}
CountManagerTests.defaultTestSuite.run()