[Dev] Functional test experience report
John Anderson
john at osafoundation.org
Thu Nov 3 17:45:51 PST 2005
Ted Leung wrote:
> Hi all.
>
> Last week I discovered that Flickr and some of the other example
> parcels were broken by changes in the detail view. This week I set
> out to write a Functional test (GUI test really, since there isn't a
> functional spec for Flickr to test against) so that we'd have a
> little more confidence that Flickr would keep on operating in the
> face of changes that we need to make to the app. I think that it is
> important that we expand our scripting based GUI test coverage. We
> are building out enough application functionality that it is hard to
> test it exhaustively by hand.
>
> When trying to write my test, I ran into several problems, and I
> thought I'd share my experiences in the hope of saving people some
> time if they try to write a test.
>
> 1. At the moment we can't script modal dialogs (there's a bug for
> this <https://bugzilla.osafoundation.org/show_bug.cgi?id=4467>) , and
> Flickr's code for creating a collection of photos was tied to the
> code that popped up the dialog. So I had to refactor the flickr
> code to separate the dependencies. The code should have been
> written that way from the beginning anyway.
>
> 2. I discovered that much of the functionality of QAUITestAppLib is
> hardwired for the basic Kinds in Chandler, and I had to bypass a good
> deal of the functionality there and go "down to the metal". I logged
> <https://bugzilla.osafoundation.org/show_bug.cgi?id=4569> for this.
>
> 3. I needed to force a repaint/idle in order to have all the
> collection changes noticed by the sidebar and summary table. Katie
> supplied the code below as a solution. I believe there is a bug for
> this, but couldn't find it in bugzillla. I didn't log a bug myself
> because I wasn't sure where processNextIdle ought to live.
Did you try it with just the Yield (e.g. wx.GetApp().Yield())?. I think
that may be all that's necessary to run the Idle loop.
>
> def processNextIdle():
> wx.GetApp().Yield()
> ev = wx.IdleEvent()
> wx.GetApp().ProcessEvent(ev)
> wx.GetApp().Yield()
>
> I hope this will save people some time as they try to write their own
> tests.
>
> Ted
>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> Open Source Applications Foundation "Dev" mailing list
> http://lists.osafoundation.org/mailman/listinfo/dev
More information about the Dev
mailing list