Le 05/02/2014 12:05, Usman Bhatti a écrit :
I see and I've been achieving it in another way.

aClass >> export
fileRef := UITheme builder
fileSave: 'Choose a file'
extensions: #('txt')
path: nil.
fileRef isNil ifFalse: [
self exportOn: fileRef writeStream
]

Instead of testing the method export, I test exportOn: with a stream as
a parameter.
What I am thinking is that, with this approach, we are not testing all
the execution paths in the method export. But then, with a Shim, we will
not be testing that path either.

No, it would be different with a Shim: you could test two times this code, one with a nil answer, and another one with a fileReference answer.

You would do something like:

{nil. 'aPath'} do: [:d |
        [ aShim setAsUITheme.
        aShim preload: #fileSave:extension:path: withAnswer: d.
        aClass export ]
                ensure: [ aShim reset ]
        ]

And hop, your paths are covered.

Thierry
--
Thierry Goubier
CEA list
Laboratoire des Fondations des Systèmes Temps Réel Embarqués
91191 Gif sur Yvette Cedex
France
Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95

Reply via email to