Dear Nahuel,

I think you are raising in excellent point. 
I think that assert: should raise an assertion error when a non-boolean is 
provided.
I have added an entry: 
https://pharo.fogbugz.com/f/cases/16847/assert-should-not-raise-an-error-with-a-non-boolean-argument

Tomorrow we have a sprint, this is like an easy thing to fix. We will work on 
it!

Thanks,
Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



> On Oct 21, 2015, at 10:21 PM, Nahuel Garbezza <n.garbe...@gmail.com> wrote:
> 
> Hi everyone,
> 
> I'm using Pharo for teaching and we use TDD since the beginning. I've noticed 
> that if you use #assert: on a test, like this:
> 
> self assert: object messageReturningBoolean
> 
> It gives you strange results in terms of feedback if the result is not a 
> boolean. I would expect an AssertionFailed (yellow test) but I got a 
> NonBooleanReceiver (red test).
> 
> What we do in our course is to write the assertion like this:
> 
> self assert: object messageReturningBoolean equals: true
> 
> So we got a "expected true but was <other object>" error which is a lot more 
> helpful to the students.
> 
> I was thinking that is better to have #assert: implementation based on 
> #assert:equals:. It is like saying #assert:equals: is the "primitive" 
> assertion message, which makes sense to me since you are always comparing if 
> an object is equal to another, there's no reason to handle the booleans' case 
> differently.
> 
> What do you think?
> 
> Thank you!
> 
> Nahuel
> 

Reply via email to