A test that asserts nothing has only asserted that the code ran through without throwing an error. :-)

I like your proposal that such a test is an inherently failing test.


(Of course, that will result in the student adding a single assertion at the end, of the form "self assert: true"!)

On Tue, Nov 21, 2017 at 4:07 PM, Prof. Andrew P. Black <black@cs.pdx.edu> wrote:
While we are discussing colors, what should we do about a test that does not make any assertions at all?

A couple of years ago, a smart student who was working on a testing dialect for me decided that such tests should be in a new category all of their own.�� Later I simplified things and just made these tests fail.�� I am pretty convinced now that this is the right behaviour.�� It certainly suits my purposes (teaching TDD); if the student omits to make any assertions, they have a failing test.�� The message is: "Failure: test made no assertions".

Currently, such a test is green in Pharo.�� In 2013, I filed a bug report on a bunch of tests of #printOn: on collections that made no assertions.�� (The test writer didn���t understand how streams worked, and made assertions for each element of the empty string.)�� I was reminded of this just this week, because those tests have yet to be fixed.�� I suspect that if they had been yellow, rather than green, then they would have been fixed before now.

I plan to fix those tests on Friday, but I also wonder about changing the behaviour of the testing framework.�� What do you think?

�� �� �� �� Andrew