On 9 July 2013 17:42, Esteban Lorenzano <estebanlm@gmail.com> wrote:
Even more important, IMHO: allowing those methods to exists is to validate an anti-pattern: if you have an specific error to throw, you should create a specific descendant of Error, not just throw Error with an explanation.
So, +A LOT to remove them.
No. Failing to specify your error messages is a colossal fail. And if you don't _test_ your error messages, how are you going to know you haven't just made your error messages utterly useless in that last refactoring? And no, checking that your KeyNotFound exception's #key is correctly set is insufficient, because you then _presume_ that the process of reporting the exception actually bothers to record that and doesn't just say "a KeyNotFound". By all means use a proper exception that captures semantic meaning. But, please, PLEASE actually test your logging. frank
Esteban
On Jul 9, 2013, at 5:42 PM, Clément Bera <bera.clement@gmail.com> wrote:
They may be useful. Imagine you are too lazy to create a subclass of Error, but not lazy enough to create a test and copy paste a String. Then you write in your method: self error: 'some strange error happened' And you can test it: self shouldnt: [ "some strange code" ] raise: Error whoseDescriptionIncludes: 'some strange error happened' description: 'the strange error did not happen ! That's strange'
Seriously, as you saw these methods are used only in their tests. I guess you can remove them. Open fogz bug ?
2013/7/9 Frank Shearar <frank.shearar@gmail.com>
On 9 July 2013 16:24, Camillo Bruni <camillobruni@gmail.com> wrote:
Survey: who uses the following methods? and if yes why?
- shouldnt: aBlock raise: anExceptionalEvent whoseDescriptionDoesNotInclude: subString description: aString - shouldnt: aBlock raise: anExceptionalEvent whoseDescriptionIncludes: subString description: aString
I honestly cannot wrap my head around these two methods.
They show that the code in the block raises an _informative_ exception. So you get a FileNotFound exception... but what was the missing file? I don't know! Noone bothered to mention it!
frank