Artium
Artium

Reputation: 5329

Squeak - SUnit Testing for Errors

I have been suggested to use should:rise in my test case to test for errors that a method might raise. For some reason it does not work as expected, so I want to verify that I'm doing it right. Here is the code in the test case:

self should: [aMyClass compareTo: 'This is a string'] raise: 'invalid input'.

My compareTo/1 method looks like this:

(aMyClass isKindOf: MyClass) ifFalse: [self error: 'invalid input'.].

The test runner output is that there is "1 errors".

Thank you.

Upvotes: 1

Views: 338

Answers (1)

Lukas Renggli
Lukas Renggli

Reputation: 8947

#should:raise: expects an Exception class as its second argument, similar to the first argument of #on:do: in exception handling:

 self should: [ aMyClass compareTo: 'This is a string' ] raise: Error

Upvotes: 3

Related Questions