Unit Testing with throws in Swift 2.0
November 23, 2015
I’ve been working very slowly on a Swift version of Playlist Export, and today I finally got around to updating the project to Swift 2.0. Luckily I wrote test cases for much of the logic to manage the export process, so I had some level of confidence that I would know if I broke anything.
However, after I got the project to compile, only one of the test cases ran. No errors or other indication why all the other cases were ignored.
I did finally figure out that if you your test case has a throws clause, it will be IGNORED.
So:
testPlaylistNameExtension() throws {
...
}
will silently be ignored, which for a test case is a pretty bad scenario. But if you handle the error in the function and change it to:
testPlaylistNameExtension() {
...
}
then everything is just fine. So if you have test in Swift 2.0 that are ignored or not executed, check to see if you have a throws in the function declaration.