Re: [Pharo-users] Removing instance variables doesn't recompile the methods
Hi abdel I created a class with x and two accessors and I created the same test than you. They were green. Then I removed the instance variable x and I run the tests and they were greeeeeeeeennnnnnnnnnn (agrhhhhhhhh) I checked the accessors and the methods where showing that the instance variable is missing. So to me this is indeed a bug. I have no idea why the test should run. Stef On Sun, Nov 26, 2017 at 9:08 PM, abdelghani ALIDRA via Pharo-users <pharo-users@lists.pharo.org> wrote:
---------- Forwarded message ---------- From: abdelghani ALIDRA <alidrandco@yahoo.fr> To: "pharo-users@lists.pharo.org" <pharo-users@lists.pharo.org> Cc: Bcc: Date: Sun, 26 Nov 2017 20:08:29 +0000 (UTC) Subject: Removing instance variables doesn't recompile the methods
Hi,
In a fresh pharo 6 image, I add a class with an instance variable x and implement accessors. Then I write a test method for the accessors of x MyClassTest>>testReadWriteX self assert (MyClass new x: 0) x equals: 0
I run the test and obviously it is green
BUT
I remove the instance variable x. Obviously, the accessors are broken and the test should be red when I execute it again but it is not!!!
I can even change the class again (to recompile it I thought) or even load the code in a new image and the tests are still green. I can also invoque the broken methods in a playground or in an inspector : MyClass new x: 0; increment; x then printIt. and astonishingly 1 is printed. The only way to detect the error is to recompile the method but this does not happen (maybe it should) when instance variables are modified or removed in the class (even when you use the refactoring tool!)
I think this is annoying because one can no more really trust his tests.
Cheers Abdelghani
https://pharo.fogbugz.com/f/cases/20765/removing-an-instance-variable-does-n... On Sun, Nov 26, 2017 at 9:50 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Hi abdel
I created a class with x and two accessors and I created the same test than you. They were green. Then I removed the instance variable x and I run the tests and they were greeeeeeeeennnnnnnnnnn (agrhhhhhhhh)
I checked the accessors and the methods where showing that the instance variable is missing.
So to me this is indeed a bug. I have no idea why the test should run.
Stef
On Sun, Nov 26, 2017 at 9:08 PM, abdelghani ALIDRA via Pharo-users <pharo-users@lists.pharo.org> wrote:
---------- Forwarded message ---------- From: abdelghani ALIDRA <alidrandco@yahoo.fr> To: "pharo-users@lists.pharo.org" <pharo-users@lists.pharo.org> Cc: Bcc: Date: Sun, 26 Nov 2017 20:08:29 +0000 (UTC) Subject: Removing instance variables doesn't recompile the methods
Hi,
In a fresh pharo 6 image, I add a class with an instance variable x and implement accessors. Then I write a test method for the accessors of x MyClassTest>>testReadWriteX self assert (MyClass new x: 0) x equals: 0
I run the test and obviously it is green
BUT
I remove the instance variable x. Obviously, the accessors are broken and the test should be red when I execute it again but it is not!!!
I can even change the class again (to recompile it I thought) or even load the code in a new image and the tests are still green. I can also invoque the broken methods in a playground or in an inspector : MyClass new x: 0; increment; x then printIt. and astonishingly 1 is printed. The only way to detect the error is to recompile the method but this does not happen (maybe it should) when instance variables are modified or removed in the class (even when you use the refactoring tool!)
I think this is annoying because one can no more really trust his tests.
Cheers Abdelghani
participants (1)
-
Stephane Ducasse