Swiftunit testing – 如何声明一个CGColor是它应该是什么?
使用Xcode V7.2。 试图进行unit testing,需要validation是否设置了正确的颜色,并得到这个消息:
Cannot invoke 'XCTAssertEqual' with an argument list of type '(CGColor, CGColor)'
我如何主张一个CGColor是它应该是什么?
使用XCTAssert
并testingCGColorEqualToColor
是否为true。
从Swift 3.0 / Xcode 8.0开始,CGColorEqualToColor也不再起作用,它会导致错误“CGColorEqualToColor is unavailable:use == instead”。
==或isEqual有以下限制:
当比较不同模型/空间的颜色(例如#FFF与[UIColor whiteColor])时,将返回NO [/ False])
(从这个答复 )可能不是所需的行为。
这很麻烦,但是我把颜色分解成它的R / G / B / Alpha分量并比较它们,例如:
var red1:CGFloat=0, green1:CGFloat=0, blue1:CGFloat=0, alpha1:CGFloat=0 colour1.getRed(&red1, green:&green1, blue:&blue1, alpha:&alpha1) var red2:CGFloat=0, green2:CGFloat=0, blue2:CGFloat=0, alpha2:CGFloat=0 colour2.getRed(&red2, green:&green2, blue:&blue2, alpha:&alpha2) XCTAssertEqual(red1, red2) XCTAssertEqual(green1, green2) XCTAssertEqual(blue1, blue2) XCTAssertEqual(alpha1, alpha2)