<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Testing UI &#8211; part 1</title>
	<atom:link href="http://misko.hevery.com/2008/07/05/testing-ui-part1/feed/" rel="self" type="application/rss+xml" />
	<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=testing-ui-part1</link>
	<description>Testability Explorer</description>
	<lastBuildDate>Fri, 28 Jun 2013 07:36:19 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.2</generator>
	<item>
		<title>By: Constructor Injection vs. Setter Injection &#124; TechInterviewPrep</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-61321</link>
		<dc:creator>Constructor Injection vs. Setter Injection &#124; TechInterviewPrep</dc:creator>
		<pubDate>Sat, 09 Mar 2013 23:01:06 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-61321</guid>
		<description><![CDATA[[...] I was building a Flex application and using the Model-View-Controller. Flex XML markup requires that components must have no argument constructors, therefore I was [...]]]></description>
		<content:encoded><![CDATA[<p>[...] I was building a Flex application and using the Model-View-Controller. Flex XML markup requires that components must have no argument constructors, therefore I was [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hareesh</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-38351</link>
		<dc:creator>hareesh</dc:creator>
		<pubDate>Fri, 12 Oct 2012 06:55:27 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-38351</guid>
		<description><![CDATA[can you write test cases for above manually.


Thanks
Hareesh]]></description>
		<content:encoded><![CDATA[<p>can you write test cases for above manually.</p>
<p>Thanks<br />
Hareesh</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Constructor Injection vs. Setter Injection &#124; Abhijit Gaikwad</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-29881</link>
		<dc:creator>Constructor Injection vs. Setter Injection &#124; Abhijit Gaikwad</dc:creator>
		<pubDate>Fri, 29 Jun 2012 08:57:33 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-29881</guid>
		<description><![CDATA[[...] I was building a Flex application and using the Model-View-Controller. Flex XML markup requires that components must have no argument constructors, therefore I was [...]]]></description>
		<content:encoded><![CDATA[<p>[...] I was building a Flex application and using the Model-View-Controller. Flex XML markup requires that components must have no argument constructors, therefore I was [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrii</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-14275</link>
		<dc:creator>Andrii</dc:creator>
		<pubDate>Thu, 15 Dec 2011 13:40:26 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-14275</guid>
		<description><![CDATA[I think in the test you&#039;re missing :

loginPage.login();

before 

assertEquals(&quot;user/pass&quot;, log);]]></description>
		<content:encoded><![CDATA[<p>I think in the test you&#8217;re missing :</p>
<p>loginPage.login();</p>
<p>before </p>
<p>assertEquals(&#8220;user/pass&#8221;, log);</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-7789</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Tue, 19 Apr 2011 23:10:23 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-7789</guid>
		<description><![CDATA[This is a good presentation of a controller communicating with a view using data binding.   But I have two concerns.   One thing I do not like about data binding is that it can lead to subtle bugs regarding time.    That is, when you have multiple data items that work together, you want to be sure that all of them pertain to the same entity.  For example, that they all belong to the current customer, not a previous customer that the user clicked through.   The other concern I have is with complex user interfaces.   If there is some complex manipulation of the user interface, that requires more that just accessing the text property of a UI component, such as creating additional components on the fly, the programmer would have to decide how to allocate the code between the view and the controller.   That might make for some difficult decisions.   It might also tempt the programmer to have the controller access the View.    In any case, thank you for the presentation.]]></description>
		<content:encoded><![CDATA[<p>This is a good presentation of a controller communicating with a view using data binding.   But I have two concerns.   One thing I do not like about data binding is that it can lead to subtle bugs regarding time.    That is, when you have multiple data items that work together, you want to be sure that all of them pertain to the same entity.  For example, that they all belong to the current customer, not a previous customer that the user clicked through.   The other concern I have is with complex user interfaces.   If there is some complex manipulation of the user interface, that requires more that just accessing the text property of a UI component, such as creating additional components on the fly, the programmer would have to decide how to allocate the code between the view and the controller.   That might make for some difficult decisions.   It might also tempt the programmer to have the controller access the View.    In any case, thank you for the presentation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sagar</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-902</link>
		<dc:creator>Sagar</dc:creator>
		<pubDate>Thu, 23 Apr 2009 10:00:46 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-902</guid>
		<description><![CDATA[hi misko,can u please suggest any tools where in a tester can identify the color, fonts, fonts size on a UI.]]></description>
		<content:encoded><![CDATA[<p>hi misko,can u please suggest any tools where in a tester can identify the color, fonts, fonts size on a UI.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Constructor Injection vs. Setter Injection</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-702</link>
		<dc:creator>Constructor Injection vs. Setter Injection</dc:creator>
		<pubDate>Thu, 19 Feb 2009 18:24:26 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-702</guid>
		<description><![CDATA[[...] I was building a Flex application and using the Model-View-Controller. Flex XML markup requires that components must have no argument constructors, therefore I was [...]]]></description>
		<content:encoded><![CDATA[<p>[...] I was building a Flex application and using the Model-View-Controller. Flex XML markup requires that components must have no argument constructors, therefore I was [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: misko</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-192</link>
		<dc:creator>misko</dc:creator>
		<pubDate>Fri, 19 Sep 2008 17:17:22 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-192</guid>
		<description><![CDATA[@CJ 

I am sure in the bast you have seen the dependencies go all different ways. But I bet you those ones are hard to test.

A View is rendering, that is hard to test. Unlikely that you will be able to assert anything interesting. Not to mention since it is rendering it needs some graphics context and so it will not be a unit test. 

A Controller has lots of interesting code/behavior in it which you want to test. But if controller knows about the  view than Controller is now hard to test since dependencies are transitive.  That is why we need to break that dependency.

Now you are right, we need to be able to communicate data from Controller back to UI. So to do that we use data bindings. (Or events). This way we can easily unit test the controller and don&#039;t have to pay the expensive view set up.

Now many systems have this backwards, or even have circular dependencies. My guess is that those systems are also not easy to test.]]></description>
		<content:encoded><![CDATA[<p>@CJ </p>
<p>I am sure in the bast you have seen the dependencies go all different ways. But I bet you those ones are hard to test.</p>
<p>A View is rendering, that is hard to test. Unlikely that you will be able to assert anything interesting. Not to mention since it is rendering it needs some graphics context and so it will not be a unit test. </p>
<p>A Controller has lots of interesting code/behavior in it which you want to test. But if controller knows about the  view than Controller is now hard to test since dependencies are transitive.  That is why we need to break that dependency.</p>
<p>Now you are right, we need to be able to communicate data from Controller back to UI. So to do that we use data bindings. (Or events). This way we can easily unit test the controller and don&#8217;t have to pay the expensive view set up.</p>
<p>Now many systems have this backwards, or even have circular dependencies. My guess is that those systems are also not easy to test.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CJ</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-188</link>
		<dc:creator>CJ</dc:creator>
		<pubDate>Fri, 19 Sep 2008 15:04:53 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-188</guid>
		<description><![CDATA[Sorry, my ascii drawing got screwed but html preprocessor or something. I drawed this:

View ← Controller → Model]]></description>
		<content:encoded><![CDATA[<p>Sorry, my ascii drawing got screwed but html preprocessor or something. I drawed this:</p>
<p>View ← Controller → Model</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CJ</title>
		<link>http://misko.hevery.com/2008/07/05/testing-ui-part1/comment-page-1/#comment-187</link>
		<dc:creator>CJ</dc:creator>
		<pubDate>Fri, 19 Sep 2008 15:02:50 +0000</pubDate>
		<guid isPermaLink="false">http://s90424825.onlinehome.us/blog/?p=36#comment-187</guid>
		<description><![CDATA[I did not get it about Model-View-Contoller. You say Controller shouldn&#039;t be dependent on View, but aren&#039;t contollers exist exactly for briding views and data, and interfacing them to rest of the system? Programs I worked with had dependencies like this:

ViewModel

How does view know what visual elements it&#039;s to change when model changes? Via observing model&#039;s events? Or how?]]></description>
		<content:encoded><![CDATA[<p>I did not get it about Model-View-Contoller. You say Controller shouldn&#8217;t be dependent on View, but aren&#8217;t contollers exist exactly for briding views and data, and interfacing them to rest of the system? Programs I worked with had dependencies like this:</p>
<p>ViewModel</p>
<p>How does view know what visual elements it&#8217;s to change when model changes? Via observing model&#8217;s events? Or how?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
