Search code examples
squeak

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.


Solution

  • #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