hernanwilkinson / Cuis-Smalltalk-DenotativeObject

MIT License
7 stars 4 forks source link

DenotativeObject class >> isEqualTo: aDenotativeObject #14

Open maximoprieto opened 7 years ago

maximoprieto commented 7 years ago

La redefinición de #= en un denotative object es problemática, dado que en el modelo actual los denotative objects son clases.

Dejo una alternativa que acordamos con Hernán con un comentario al respecto (se puede cambiar).

DenotativeObject class >>

isEqualTo: aDenotativeObject "Since denotative objects are classes, redefining #= should be avoided. Otherwise, strange things can happen because the whole Cuis environment assumes equality for classes. Rededine and use this message instead in a denotative object when needed."

^ self = aDenotativeObject 
maximoprieto commented 7 years ago

Comentario adicional: Al escribir tests para verificar la redifinición de #isEqualTo: hay que usar #isTrue: en lugar de #that:isEqualTo: ya que éste usa #=. También vale para cualquier test que dependa de la igualdad redifinida.

Una alternativa sería modificar #that:isEqualTo: en Assert para que use #isEqualTo:. Creo que esto sería mejor para evitar estar pendiente de qué mensaje usar al momento de escribir tests.

hernanwilkinson commented 7 years ago

Listo, presente en la proxima version. Defini #isEqualTo: , #isNotEqualTo:, #isIdenticalTo: y #isNotIdenticalTo: Modifique Assert para que use #isEqualTo: y #isIdenticalTo: