Agreed on all counts. This is one case where formatting matters, because people are going to see and interact with this code, even though I&#39;d argue they could just apply their own formatter, it&#39;s best if they be presented with something nice to begin with :)<br>
<br><div class="gmail_quote">On Wed, Jun 13, 2012 at 1:19 AM, Richard Kennard <span dir="ltr">&lt;<a href="mailto:richard@kennardconsulting.com" target="_blank">richard@kennardconsulting.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
George&#39;s point is well taken. The current tests could be made less fragile. In particular, there have been a number of complaints about &#39;\r\n versus \n&#39;<br>
when building on Windows/Linux. I believe these are all resolved now, but the basic concept is sound.<br>
<br>
Having said that, there *is* something important about testing the white space. Namely, we are making sure the generated code is indented correctly (has<br>
the correct number of \t&#39;s) relative to its surrounding template. The idea is that it doesn&#39;t &#39;stick out&#39; as being generated code.<br>
<br>
Also, with respect to &#39;black-box versus unit tests&#39;, I don&#39;t think this should be an either-or thing. I think we should have both.<br>
<br>
Regards,<br>
<br>
Richard.<br>
<div class="im"><br>
On 13/06/2012 3:12 PM, Dan Allen wrote:<br>
&gt; Let&#39;s not miss the original point that George makes, which is that comparing the structure may make less fragile tests than comparing the raw HTML. I<br>
&gt; tend to agree, unless there is something very important about maintaining the whitespace. Even then, a structure comparison tool should be able to<br>
&gt; accommodate that rule.<br>
&gt;<br>
&gt; -Dan<br>
&gt;<br>
</div><div class="im">&gt; On Wed, Jun 13, 2012 at 1:00 AM, Lincoln Baxter, III &lt;<a href="mailto:lincolnbaxter@gmail.com">lincolnbaxter@gmail.com</a> &lt;mailto:<a href="mailto:lincolnbaxter@gmail.com">lincolnbaxter@gmail.com</a>&gt;&gt; wrote:<br>

&gt;<br>
&gt;     Yeah, I&#39;m not sure there&#39;s a great way around this aside from a more black-box functional approach, but even that might not be getting as<br>
&gt;     fine-grained as some of these tests need to be. With greater test coverage, I think it could be replaced, however.<br>
&gt;<br>
&gt;     ~Lincoln<br>
&gt;<br>
&gt;<br>
</div><div><div class="h5">&gt;     On Mon, Jun 11, 2012 at 10:25 PM, Richard Kennard &lt;<a href="mailto:richard@kennardconsulting.com">richard@kennardconsulting.com</a> &lt;mailto:<a href="mailto:richard@kennardconsulting.com">richard@kennardconsulting.com</a>&gt;&gt; wrote:<br>

&gt;<br>
&gt;         +1 for this.<br>
&gt;<br>
&gt;         However note there are different levels of tests. Classes like FacesScaffoldScenarioTest are only meant to test very small, very specific things.<br>
&gt;         Basically<br>
&gt;         regression testing. Classes like FacesScaffoldWeatherTest are also small and specific.<br>
&gt;<br>
&gt;         The real testing is done using Arquillian (like FacesScaffoldPetClinicClient and FacesScaffoldShoppingClient). Because whilst your point about<br>
&gt;         &#39;if you<br>
&gt;         place a line break in a generated XHTML... it breaks the whole test&#39; is very valid, even with XmlUnit you are vulnerable to &#39;if you place an<br>
&gt;         extra XML<br>
&gt;         element in a generated XHTML... it breaks the whole test&#39;.<br>
&gt;<br>
&gt;         Testing through Arquillian is the only way to be really sure the generated app actually works, IMHO. Because you are testing it the way the user<br>
&gt;         would.<br>
&gt;<br>
&gt;         However, definitely +1 for using XmlUnit, as far as that goes.<br>
&gt;<br>
&gt;         Regards,<br>
&gt;<br>
&gt;         Richard.<br>
&gt;<br>
&gt;         On 12/06/2012 12:09 PM, George Gastaldi wrote:<br>
&gt;         &gt; Hello all,<br>
&gt;         &gt;<br>
&gt;         &gt; I noticed that most of our scaffold unit tests are kinda hard to<br>
&gt;         &gt; maintain. specially because they compare XHTML as strings, instead of<br>
&gt;         &gt; the structure as a whole.<br>
&gt;         &gt; This implies that if you place a line break in a generated XHTML for<br>
&gt;         &gt; example, it breaks the whole test as well.<br>
&gt;         &gt; What about if we refactor these tests to use XmlUnit instead ?<br>
&gt;         &gt; (<a href="http://xmlunit.sourceforge.net/" target="_blank">http://xmlunit.sourceforge.net/</a>)<br>
&gt;         &gt; This way we could compare the structure without the ugly plain string<br>
&gt;         &gt; comparison, WDYT ?<br>
&gt;         &gt;<br>
&gt;         &gt;<br>
&gt;         &gt; Regards,,<br>
&gt;         &gt; George Gastaldi<br>
&gt;         &gt; _______________________________________________<br>
&gt;         &gt; forge-dev mailing list<br>
</div></div>&gt;         &gt; <a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a>&gt;<br>
<div class="im">&gt;         &gt; <a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
&gt;         &gt;<br>
&gt;         &gt;<br>
&gt;<br>
&gt;         _______________________________________________<br>
&gt;         forge-dev mailing list<br>
</div>&gt;         <a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a>&gt;<br>
<div class="im">&gt;         <a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;     --<br>
&gt;     Lincoln Baxter, III<br>
&gt;     <a href="http://ocpsoft.org" target="_blank">http://ocpsoft.org</a><br>
&gt;     &quot;Simpler is better.&quot;<br>
&gt;<br>
&gt;     _______________________________________________<br>
&gt;     forge-dev mailing list<br>
</div>&gt;     <a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a>&gt;<br>
<div class="im HOEnZb">&gt;     <a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Dan Allen<br>
&gt; Principal Software Engineer, Red Hat | Author of Seam in Action<br>
&gt; Registered Linux User #231597<br>
&gt;<br>
&gt; <a href="http://google.com/profiles/dan.j.allen" target="_blank">http://google.com/profiles/dan.j.allen</a><br>
&gt; <a href="http://mojavelinux.com" target="_blank">http://mojavelinux.com</a><br>
&gt; <a href="http://mojavelinux.com/seaminaction" target="_blank">http://mojavelinux.com/seaminaction</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
</div><div class="HOEnZb"><div class="h5">&gt; _______________________________________________<br>
&gt; forge-dev mailing list<br>
&gt; <a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
<br>
_______________________________________________<br>
forge-dev mailing list<br>
<a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Lincoln Baxter, III<br><a href="http://ocpsoft.org" target="_blank">http://ocpsoft.org</a><br>&quot;Simpler is better.&quot;<br>