2017-06-04 15:32 GMT+02:00 Denis Kudriashov <dionisiydk@gmail.com>:

2017-06-04 15:03 GMT+02:00 Cyril Ferlicot D. <cyril.ferlicot@gmail.com>:
If most people agree that we should inherit the tests by default I think
this is a change that should be done very early in the Pharo 7 dev. Thus
it would let time to people to adapt their project.

I agree :)

+1 for inheriting by default.
If ever we don't want to inherit, it's as simple as implementing
shouldInheritSelectors
������ ^false

It's far more simple than implementing isAbstract at class side as we have to do now.
99% of the time we want to inherit, and what we see in order to avoid isAbstract dance is
shouldInheritSelectors
������ ^true


One more word about Pharo version.
In original SUnit we control with these simple two methods:

buildSuiteFromSelectors
������ ^self shouldInheritSelectors
������ ������ ifTrue: [self buildSuiteFromAllSelectors]
������ ������ ifFalse: [self buildSuiteFromLocalSelectors]

shouldInheritSelectors
������ ^self superclass isAbstract
������ ������ or: [self testSelectors isEmpty]

In Pharo this has been refactored:
- buildSuiteFromAllSelectors is not sent, but duplicated in buildSuiteFromSelectors
- buildSuiteFromLocalSelectors is not sent either,
- all happens in allTestSelectors, which has changed of semantic and does not allways answer all tests selectors :(
But the logic seems to remain the same: if the superclass is abstract OR if the set of selectors is empty, then the class will inherit...
If my opinion ever counts, what I see is refactoring for refactoring.
I don't see any new feature, just more unsent selectors, more garbage, and unclear semantic.
I call this runaway refactoring.
There's enough thing to clean in Squeak to avoid "cleaning" what works well no?