<?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"
	>
<channel>
	<title>Comments on: DUnitLite 0.4: bugfixes and Should.ReferTo</title>
	<atom:link href="http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/</link>
	<description>Life, .NET, and Cats</description>
	<pubDate>Sat, 11 Oct 2008 09:29:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Joe</title>
		<link>http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7146</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Thu, 27 Mar 2008 03:02:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7146</guid>
		<description>Patrick: Yes, it would be &lt;i&gt;way&lt;/i&gt; cooler if you could add implicit operators via class helpers. Alas.

And I'll make a note to check on that DecimalSeparator thing. That never occurred to me (as you noticed). Thanks!

Lars: Yeah, looks like you got it -- the difference is in how much information you see when it fails. Sometimes knowing that Foo wasn't 45 is only half the battle -- you want to know what it &lt;i&gt;was&lt;/i&gt;! Assert() doesn't give you that, and neither do DUnit's most simplistic methods, Check(Boolean) and Fail(). CheckEquals and friends are much preferred because they do give you the better information. So does DUnitLite, but with DUnitLite, your code is easier to read (because things are the right way around).</description>
		<content:encoded><![CDATA[<p>Patrick: Yes, it would be <i>way</i> cooler if you could add implicit operators via class helpers. Alas.</p>
<p>And I&#8217;ll make a note to check on that DecimalSeparator thing. That never occurred to me (as you noticed). Thanks!</p>
<p>Lars: Yeah, looks like you got it &#8212; the difference is in how much information you see when it fails. Sometimes knowing that Foo wasn&#8217;t 45 is only half the battle &#8212; you want to know what it <i>was</i>! Assert() doesn&#8217;t give you that, and neither do DUnit&#8217;s most simplistic methods, Check(Boolean) and Fail(). CheckEquals and friends are much preferred because they do give you the better information. So does DUnitLite, but with DUnitLite, your code is easier to read (because things are the right way around).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lars Fosdal</title>
		<link>http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7129</link>
		<dc:creator>Lars Fosdal</dc:creator>
		<pubDate>Wed, 26 Mar 2008 13:59:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7129</guid>
		<description>(except the assertion exception &#62;&#60;)

NOW I get it :P</description>
		<content:encoded><![CDATA[<p>(except the assertion exception &gt;&lt;)</p>
<p>NOW I get it <img src='http://blog.excastle.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lars Fosdal</title>
		<link>http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7128</link>
		<dc:creator>Lars Fosdal</dc:creator>
		<pubDate>Wed, 26 Mar 2008 13:58:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7128</guid>
		<description>I see.  I guess I was approaching the subject from a "programming by contract" perspective.  I usually put Asserts in primitives to ensure I don't feed them silly things in the dev.testing.

But ... (playing at devil's advocate- note that I haven't really used NUnit or DUnit) ...
What is wrong with: 

Assert(Foo = 45);
Assert(Bar  45);
Assert(Baz &#62;= 40);
Assert(Quux is TSpecialQuux);

?</description>
		<content:encoded><![CDATA[<p>I see.  I guess I was approaching the subject from a &#8220;programming by contract&#8221; perspective.  I usually put Asserts in primitives to ensure I don&#8217;t feed them silly things in the dev.testing.</p>
<p>But &#8230; (playing at devil&#8217;s advocate- note that I haven&#8217;t really used NUnit or DUnit) &#8230;<br />
What is wrong with: </p>
<p>Assert(Foo = 45);<br />
Assert(Bar  45);<br />
Assert(Baz &gt;= 40);<br />
Assert(Quux is TSpecialQuux);</p>
<p>?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick van Logchem</title>
		<link>http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7126</link>
		<dc:creator>Patrick van Logchem</dc:creator>
		<pubDate>Wed, 26 Mar 2008 11:14:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7126</guid>
		<description>I'd like to point out two things:

1) When DecimalSeparator is set to anything else than ".", some tests fail

2) Additional implicit operators could be added via a class helper, so Values.pas won't need changing.
Alas, Delphi doesn't allow operator overloaders on record helpers (or class helpers for that matter).
(I'm thinking of requesting this in QualityCentral)

Cheers</description>
		<content:encoded><![CDATA[<p>I&#8217;d like to point out two things:</p>
<p>1) When DecimalSeparator is set to anything else than &#8220;.&#8221;, some tests fail</p>
<p>2) Additional implicit operators could be added via a class helper, so Values.pas won&#8217;t need changing.<br />
Alas, Delphi doesn&#8217;t allow operator overloaders on record helpers (or class helpers for that matter).<br />
(I&#8217;m thinking of requesting this in QualityCentral)</p>
<p>Cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe</title>
		<link>http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7102</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Wed, 26 Mar 2008 02:03:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7102</guid>
		<description>It works the same way as with DUnit (since it's built on top of DUnit): you don't ever compile your unit tests into your production app in the first place. So asserted vs. non-asserted doesn't matter.

At work, we put all of our unit tests into separate units. A unit called &lt;code&gt;Accounts.pas&lt;/code&gt; would have a corresponding &lt;code&gt;AccountTests.pas&lt;/code&gt;. &lt;code&gt;AccountTests&lt;/code&gt; will use &lt;code&gt;Accounts&lt;/code&gt;, but never the other way around. So none of those test units are ever compiled into our production app, which effectively gets what I think you're looking for, i.e., the production app isn't filled with test code.

Then we have a separate project named &lt;code&gt;Tests.dpr&lt;/code&gt;. We compile all of our test units into this app (and only this app), and it's what launches the DUnit test runner. And you'd better believe that all of those tests are compiled in, whether it's an asserted build or not -- if our tests didn't do anything, it would defeat the whole purpose of having automated tests in the first place!</description>
		<content:encoded><![CDATA[<p>It works the same way as with DUnit (since it&#8217;s built on top of DUnit): you don&#8217;t ever compile your unit tests into your production app in the first place. So asserted vs. non-asserted doesn&#8217;t matter.</p>
<p>At work, we put all of our unit tests into separate units. A unit called <code>Accounts.pas</code> would have a corresponding <code>AccountTests.pas</code>. <code>AccountTests</code> will use <code>Accounts</code>, but never the other way around. So none of those test units are ever compiled into our production app, which effectively gets what I think you&#8217;re looking for, i.e., the production app isn&#8217;t filled with test code.</p>
<p>Then we have a separate project named <code>Tests.dpr</code>. We compile all of our test units into this app (and only this app), and it&#8217;s what launches the DUnit test runner. And you&#8217;d better believe that all of those tests are compiled in, whether it&#8217;s an asserted build or not &#8212; if our tests didn&#8217;t do anything, it would defeat the whole purpose of having automated tests in the first place!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lars Fosdal</title>
		<link>http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7074</link>
		<dc:creator>Lars Fosdal</dc:creator>
		<pubDate>Tue, 25 Mar 2008 12:49:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2008/03/24/dunitlite-04-bugfixes-and-shouldreferto/#comment-7074</guid>
		<description>One good thing with Assert is the ability to compile with asserts in or out.
How does that work with DUnitLite?</description>
		<content:encoded><![CDATA[<p>One good thing with Assert is the ability to compile with asserts in or out.<br />
How does that work with DUnitLite?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
