【发布时间】:2016-01-11 16:45:15
【问题描述】:
我写了以下函数:
func sendMessage(message:Dictionary<String,AnyObject>) {
do {
let json = try NSJSONSerialization.dataWithJSONObject(message, options: [])
let jsonStr = NSString(data: json, encoding: NSUTF8StringEncoding)
self.wsSource.writeString(jsonStr as! String)
} catch let err as NSError {
Rc2LogError ("error sending json message on websocket:\(err)")
}
}
这是一个应该通过的单元测试:
func testSendMessageFailure() {
let dict = ["foo":wspace!, "bar":22]
session!.sendMessage(dict)
XCTAssertNil(wsSrc.lastStringWritten)
}
但测试失败并显示以下消息:
test failure: -[Rc2SessionTests testSendMessageFailure()] failed: failed: caught "NSInvalidArgumentException", "Invalid type in JSON write (Rc2.Rc2Workspace)"
这不是失败。这是我所期望的!这是否意味着不可能编写一个调用具有处理错误的错误处理程序的函数的单元测试?
我如何告诉 XCTest/Xcode 捕获的错误/异常并不意味着测试失败?
【问题讨论】:
标签: xcode swift unit-testing