I think not.
This way is substitution of method literal.

But "self sends" stubbing required anonimous subclass creation with required
methods overrides.

2011/7/19 Dennis Schetinin <[email protected]>

> Can we test self sends this way?
>
>
> 2011/7/19 Denis Kudriashov <[email protected]>
>
>> I should add it to Mocketry.
>>
>> 2011/7/19 Sean P. DeNigris <[email protected]>
>>
>> Ah, so the lookups are done once when the method is compiled and then
>>> stored
>>> in the CompiledMethod...
>>>
>>> My vision is to write something like:
>>>        cannedNow := DateAndTime stub: #now; andReturn: [ DateAndTime
>>> year: 2011
>>> month: 12 day: 24 hour: 12 minute: 34 second: 55 ].
>>>        testableClass := MyClass usingDouble: cannedNow.
>>>
>>> The first line seems easy, and for the second line, I have so far (very
>>> rough, but working):
>>>
>>>        | class copy |
>>>        class := MyClass.
>>>        copy := MyClass copy.
>>>
>>>        copy methods do: [ :m | | classRef |
>>>                (m hasLiteralSuchThat: [ :l | ((l isKindOf: Association)
>>> and: [ l key =
>>> #DateAndTime])])
>>>                        ifTrue: [ | newMeth refIndex |
>>>                                newMeth := copy methodDictionary at: m
>>> selector put: m copy.
>>>                                refIndex := newMeth
>>> indexOfLiteralSuchThat: [ :l | ((l isKindOf:
>>> Association) and: [ l key = #DateAndTime])].
>>>                                newMeth literalAt: refIndex put:
>>> #DateAndTime->MockedClass ] ].
>>>        ^ copy.
>>>
>>> Where CompiledMethod>>indexOfLiteralSuchThat: aBlock
>>>        "Answer the literal index of the argument, literal, or zero if
>>> none."
>>>        2 to: self numLiterals - 1 "exclude superclass +
>>> selector/properties"
>>>           do:
>>>                [:index |
>>>                (aBlock value: (self objectAt: index)) ifTrue: [^index -
>>> 1]].
>>>        ^0
>>>
>>> Thanks again.
>>> Sean
>>>
>>>
>>> --
>>> View this message in context:
>>> http://forum.world.st/Stubbing-class-side-methods-tp3674065p3676637.html
>>> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>>>
>>>
>>
>
>
> --
> Dennis Schetinin
>

Reply via email to