<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-3339316202894508517.post7162250899012633901..comments</id><updated>2008-08-14T18:37:14.552-07:00</updated><title type='text'>Comments on Duffblog 2.0: Unit testing Swing components - impossible?</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.dubh.org/feeds/7162250899012633901/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html'/><author><name>Brian Duff</name><uri>http://www.blogger.com/profile/15591692569924908268</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3339316202894508517.post-4292789018349762750</id><published>2008-08-13T18:48:00.000-07:00</published><updated>2008-08-13T18:48:00.000-07:00</updated><title type='text'>In our book "Swing Extreme Testing" we develop a l...</title><content type='html'>In our book "Swing Extreme Testing" we develop a lot of utility code for testing user interfaces. Anyone seriously interested in thoroughly testing their Java desktop application should have a look. Anyhow, we have an improved Robot ("Cyborg") that makes clicking, dragging and dropping, using tables, lists etc. pretty straightforward. We develop another class ("UI") for safely interacting with Swing components from the test thread. TL.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/4292789018349762750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/4292789018349762750'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html?showComment=1218678480000#c4292789018349762750' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html' ref='tag:blogger.com,1999:blog-3339316202894508517.post-7162250899012633901' source='http://www.blogger.com/feeds/3339316202894508517/posts/default/7162250899012633901' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-3339316202894508517.post-2593557303713058527</id><published>2007-06-13T07:26:00.000-07:00</published><updated>2007-06-13T07:26:00.000-07:00</updated><title type='text'>Brian,Is it possible to test drag and drop, and fo...</title><content type='html'>Brian,&lt;BR/&gt;&lt;BR/&gt;Is it possible to test drag and drop, and focus tracking this way?&lt;BR/&gt;&lt;BR/&gt;Bruce</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/2593557303713058527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/2593557303713058527'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html?showComment=1181744760000#c2593557303713058527' title=''/><author><name>Bruce Alspaugh</name><uri>http://www.blogger.com/profile/16969753902392777881</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html' ref='tag:blogger.com,1999:blog-3339316202894508517.post-7162250899012633901' source='http://www.blogger.com/feeds/3339316202894508517/posts/default/7162250899012633901' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-3339316202894508517.post-711962383687119333</id><published>2007-04-22T00:45:00.000-07:00</published><updated>2007-04-22T00:45:00.000-07:00</updated><title type='text'>I guess I've seen too many developers over the yea...</title><content type='html'>I guess I've seen too many developers over the years kind of raise their hands and declare unit testing a bust on Swing and end up just writing functional tests instead because it's "easier". &lt;BR/&gt;&lt;BR/&gt;I've found unit testing of swing code to be incredibly effective, and I'm less than impressed by some of the functional test frameworks out there (although I like FEST a lot of course :) ). &lt;BR/&gt;&lt;BR/&gt;Brian</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/711962383687119333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/711962383687119333'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html?showComment=1177227900000#c711962383687119333' title=''/><author><name>Brian Duff</name><uri>http://www.blogger.com/profile/15591692569924908268</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18398815340940756707'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html' ref='tag:blogger.com,1999:blog-3339316202894508517.post-7162250899012633901' source='http://www.blogger.com/feeds/3339316202894508517/posts/default/7162250899012633901' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-3339316202894508517.post-8154640060520754695</id><published>2007-03-09T08:43:00.000-08:00</published><updated>2007-03-09T08:43:00.000-08:00</updated><title type='text'>Hi Brian,Obviously I'm not describing a unit test....</title><content type='html'>Hi Brian,&lt;BR/&gt;&lt;BR/&gt;Obviously I'm not describing a unit test. It is a functional test. What I am saying is that although unit test is useful, you need functional tests as well.&lt;BR/&gt;&lt;BR/&gt;Cheers,&lt;BR/&gt;Alex.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/8154640060520754695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/8154640060520754695'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html?showComment=1173458580000#c8154640060520754695' title=''/><author><name>alexRuiz</name><uri>http://www.blogger.com/profile/17146635182338081808</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html' ref='tag:blogger.com,1999:blog-3339316202894508517.post-7162250899012633901' source='http://www.blogger.com/feeds/3339316202894508517/posts/default/7162250899012633901' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-3339316202894508517.post-4965247805066112347</id><published>2007-03-08T12:49:00.000-08:00</published><updated>2007-03-08T12:49:00.000-08:00</updated><title type='text'>And make sure all your tests happen on the EDT or ...</title><content type='html'>And make sure all your tests happen on the EDT or you might run into some nasty surprises :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/4965247805066112347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/4965247805066112347'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html?showComment=1173386940000#c4965247805066112347' title=''/><author><name>Romain Guy</name><uri>http://www.blogger.com/profile/10487633154806940620</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html' ref='tag:blogger.com,1999:blog-3339316202894508517.post-7162250899012633901' source='http://www.blogger.com/feeds/3339316202894508517/posts/default/7162250899012633901' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-3339316202894508517.post-3266797350605248512</id><published>2007-03-08T01:04:00.000-08:00</published><updated>2007-03-08T01:04:00.000-08:00</updated><title type='text'>Hi Alex,I agree that needs to be tested. But what ...</title><content type='html'>Hi Alex,&lt;BR/&gt;&lt;BR/&gt;I agree that needs to be tested. But what you are describing is not a unit test.&lt;BR/&gt;&lt;BR/&gt;Thanks,&lt;BR/&gt;Brian</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/3266797350605248512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/3266797350605248512'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html?showComment=1173344640000#c3266797350605248512' title=''/><author><name>Brian Duff</name><uri>http://www.blogger.com/profile/15591692569924908268</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18398815340940756707'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html' ref='tag:blogger.com,1999:blog-3339316202894508517.post-7162250899012633901' source='http://www.blogger.com/feeds/3339316202894508517/posts/default/7162250899012633901' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-3339316202894508517.post-6324793061989272126</id><published>2007-03-07T11:48:00.000-08:00</published><updated>2007-03-07T11:48:00.000-08:00</updated><title type='text'>Hi Brian,Pretty interesting blog entry. Testing GU...</title><content type='html'>Hi Brian,&lt;BR/&gt;&lt;BR/&gt;Pretty interesting blog entry. Testing GUI components in isolation can be helpful. I don't agree with your assertion "no Robot is required" . It is easy to test "normal" (non-GUI) classes/components in isolation because the actual users of those classes are...other classes. We can say that the unit test simulates the usage of a normal class perfectly. The ultimate test for GUI-related stuff should include simulation of a user actually using the GUI component. An such user is a person. Hence we need a "Robot" for that.&lt;BR/&gt;&lt;BR/&gt;Cheers,&lt;BR/&gt;Alex.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/6324793061989272126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/6324793061989272126'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html?showComment=1173296880000#c6324793061989272126' title=''/><author><name>alexRuiz</name><uri>http://www.blogger.com/profile/17146635182338081808</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html' ref='tag:blogger.com,1999:blog-3339316202894508517.post-7162250899012633901' source='http://www.blogger.com/feeds/3339316202894508517/posts/default/7162250899012633901' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-3339316202894508517.post-8350332893297668614</id><published>2007-03-07T08:02:00.000-08:00</published><updated>2007-03-07T08:02:00.000-08:00</updated><title type='text'>Brian,Your are not entirely correct that you have ...</title><content type='html'>Brian,&lt;BR/&gt;&lt;BR/&gt;Your are not entirely correct that you have to see the components when testing the UI. Take a look at the following entry in the FAQ:&lt;BR/&gt;&lt;BR/&gt;http://abbot.sourceforge.net/doc/FAQ.shtml#q203&lt;BR/&gt;&lt;BR/&gt;On Linux you can quite happily create virtual displays that are not bound to a monitor.&lt;BR/&gt;&lt;BR/&gt;Cheers,&lt;BR/&gt;&lt;BR/&gt;Gerard</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/8350332893297668614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339316202894508517/7162250899012633901/comments/default/8350332893297668614'/><link rel='alternate' type='text/html' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html?showComment=1173283320000#c8350332893297668614' title=''/><author><name>Gerard</name><uri>http://www.blogger.com/profile/16521924431312439170</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05330327076864817060'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.dubh.org/2007/03/unit-testing-swing-components.html' ref='tag:blogger.com,1999:blog-3339316202894508517.post-7162250899012633901' source='http://www.blogger.com/feeds/3339316202894508517/posts/default/7162250899012633901' type='text/html'/></entry></feed>