[Laszlo-dev] problem porting lzunit to swf9

Henry Minsky hminsky at laszlosystems.com
Fri Jul 4 06:25:15 PDT 2008


I think I can write a script that will work for most of the lzunit
tests to enumerate all the test methods and add a "addTests" method to
them.




On Fri, Jul 4, 2008 at 9:13 AM, P T Withington <ptw at pobox.com> wrote:
> Ah, or, we could use the new proposed <function> tag...
>
> But you're probably right.  Just have an API to add tests to the suite.
>
> On 2008-07-04, at 09:08 EDT, Henry Minsky wrote:
>
>> We don't have a good way right now to automatically enumerate the
>> method names at runtime
>> of a class. So I'm wondering if we should make an API call that you
>> need to use in your test which
>> explicitly adds a test method to a list of tests to run.  So you're
>> required to define a method named "addTests"
>> in your test case class. Then you also get to ensure the tests are run
>> in a specific order as well.
>>
>>
>>
>>  <class name="MyTest" extends="TestCase">
>>   <method name="testSomething">
>>    ...
>>   </method>
>>
>>   <method name="testSomethingElse">
>>    ...
>>   </method>
>>
>>
>>  <!-- this method is required to be defined by the user -->
>>   <method name="addTests">
>>     this.addTest(testSomething);
>>     this.addTest(testSomethingElse);
>>   </method>
>> </class>
>>
>>
>> On Fri, Jul 4, 2008 at 8:56 AM, P T Withington <ptw at pobox.com> wrote:
>>>
>>> I modelled this on how junit did it. But maybe we could just make the
>>> TestCase class add itself to a list in its construct or init method?
>>>
>>> On Jul 4, 2008, at 0:46, "Henry Minsky" <hminsky at laszlosystems.com>
>>> wrote:
>>>
>>>> The TestSuite class in lzunit relies on iterating over all the
>>>> properties of a TestCase to find its methods who are named "testXXX".
>>>>
>>>> It does
>>>>
>>>>         var sv = subviews[this.nextCase];
>>>>         dw("TestSuite.initSuite: subviews[", this.nextCase, "] = ", sv);
>>>>         if (sv instanceof lz.TestCase)
>>>>         {
>>>>             for (var n in sv) {
>>>>                 var t = sv[n];
>>>>
>>>> Which will not do anything useful in swf9, because methods are not
>>>> properties.
>>>>
>>>> If the methods are declared public, then I could use the XML
>>>> introspection feature of swf9.
>>>>
>>>> Or maybe we should have a more portable way to declare testcases, like
>>>> how lztest makes you
>>>> add them explicitly..
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Henry Minsky
>>>> Software Architect
>>>> hminsky at laszlosystems.com
>>>
>>
>>
>>
>> --
>> Henry Minsky
>> Software Architect
>> hminsky at laszlosystems.com
>
>



-- 
Henry Minsky
Software Architect
hminsky at laszlosystems.com


More information about the Laszlo-dev mailing list