[TFUI] Re: [TDD] Re: A better way to test the GUI?
Phlip <[email protected]>
| Newsgroups | gmane.comp.programming.test-first-user-interfaces,gmane.comp.programming.test-driven-development |
|---|---|
| Message-ID | <[email protected]> |
Charlie Poole wrote:
> Hi Phlip,
>
> In theory, it's simple, but in practice?
>
> I don't know about Java, but in .NET the Graphics class is sealed
> doesn't implement any interface but IDisposable.
> So it's not easy to substitute a mock. However, the class is
> MarshalByReference, so with some work, you should
> be able to spin up a proxy that would convince Paint it was talking to a
> real System.Drawing.Graphics object.
>
> The graphics object is passed to OnPaint as a member of a
> PaintEventArgs, which is trivial to construct. You would
> just need the pseudo-Graphics object we just hypothesized and a bounding
> rectangle.
>
> Of course, OnPaint is called by the .NET framework, whenever painting is
> needed. It's not likely that we can get
> .NET to use our own mock in making this call, so we need to Mock .NET as
> well. :-;
>
> For the simple cases, you could derive a class from your custom control,
> expose a public method that called
> OnPaint, and pass in your own object. Alternatively, you could call it
> through reflection. For the non-simple
> cases, well... it's not that "simple".
>
> I'm not disagreeing with your principle, but I think you may have given
> the impression that it's _easy_
> to plug in a mock graphics object, and it currently isn't. I'm doing a
> lot of work on this and I might eventually
> have a framework that does this stuff. If we can make it as easy as
> using a mock framework, then the
> economic tradeoff changes. Right now, you have to be willing to put in a
> fair bit of effort, which makes the
> approach viable only for projects that see a very strong need for this
> level of testing.
Is my estimate correct that there is no widespread, commonly available
canvas control available for the Java GUIs and C# GUIs?
This is not rocket surgery. If you don't need super-advanced real-time
visualizations, then you don't need raw paint commands. The effort to
mock those commands exceeds the effort to build a simple canvas
control, like Tk Canvas.
--
Phlip
To unsubscribe, email:
TestFirstUserInterfaces-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/TestFirstUserInterfaces/
<*> To unsubscribe from this group, send an email to:
TestFirstUserInterfaces-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/