<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Best Served Cold - cfcUnit</title>
			<link>http://www.pjk.us/paul/index.cfm</link>
			<description>Place where I talk.</description>
			<language>en-us</language>
			<pubDate>Tue, 07 Sep 2010 21:03:57 -0700</pubDate>
			<lastBuildDate>Tue, 13 Mar 2007 11:36:00 -0700</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>paul@pjk.us</managingEditor>
			<webMaster>paul@pjk.us</webMaster>
			
			
			
			
			
			<item>
				<title>cfcUnit Site Unavailable</title>
				<link>http://www.pjk.us/paul/index.cfm/2007/3/13/cfcUnit-Site-Unavailable</link>
				<description>
				
				So, it seems that there was a problem with DNS for the cfcuit.org domain, and the cfcUnit website is currently down.  Go ahead and try it, I swear it doesn&apos;t work. I checked. Anyhow, I fixed the problem with the registrar, but as with anything involving DNS registars, its just a matter of propagation (read lots of waiting around). Give it a day or so and it should be back up.


[1:45pm - Follow up]
Well, it seems to be back up. Much more quickly than I expected.
				
				</description>
						
				
				<category>cfcUnit</category>				
				
				<pubDate>Tue, 13 Mar 2007 11:36:00 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2007/3/13/cfcUnit-Site-Unavailable</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Lots of great ideas</title>
				<link>http://www.pjk.us/paul/index.cfm/2007/3/10/Lots-of-great-ideas</link>
				<description>
				
				I would like to thank everyone that offered suggestions for what they would like to see in the next version of cfcUnit. Many of these are great ideas, and some will certainly be added to the core framework. They have given me something to focus on and a bit more future food for thought.

Something else that is made much clearer is that more documentation, tutorials and examples are needed to get people started more quickly. I will be addressing that.

I would also like to remind folks that there is a cfcUnit mailing list (link below). If you have any ideas or questions about how things work, it is a good way of getting some help.
				
				</description>
						
				
				<category>unit testing</category>				
				
				<category>ColdFusion</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Sat, 10 Mar 2007 23:12:00 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2007/3/10/Lots-of-great-ideas</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Your thoughts on unit testing</title>
				<link>http://www.pjk.us/paul/index.cfm/2007/3/2/Your-thoughts-on-unit-testing</link>
				<description>
				
				I have spent these last few months working on the next release of &lt;a href=&quot;http://www.cfcunit.org/cfcunit&quot;&gt;cfcUnit&lt;/a&gt; 1.2, so it has been on my mind quite a bit. While I add important functionality to the framework like a remote service for Flash Remoting and a rather robust Ant task and fix some long-standing issues, I can&apos;t help wonder if there is something else I need to add. So I pose this question to you: What do you want to see in the next release of cfcUnit?

If you already using cfcUnit for your unit testing needs, what would could be done to make your experience that much better? If you are not writing unit tests right now, what would it take to change your mind?
				
				</description>
						
				
				<category>unit testing</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Fri, 02 Mar 2007 01:15:00 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2007/3/2/Your-thoughts-on-unit-testing</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>You want it, you got it!</title>
				<link>http://www.pjk.us/paul/index.cfm/2007/2/2/You_want_it,_you_got_it!</link>
				<description>
				
				&lt;p&gt;Ok, so I have finally gone and done it. A number of people have been giving me a bit of grief over this, and while the cfcUnit site hasn&apos;t yet been updated, I have gone ahead and made available for download cfcUnit&apos;s next release, 1.2 Beta 1.&lt;/p&gt;

&lt;p&gt;The major enhancement brought forth in this release is the inclusion of a rather versatile Ant task, so now tests can be run from within Eclipse without much trouble or as part of any build/deployment process that employs Ant.&lt;/p&gt;

&lt;p&gt;I will post more about this and update the &lt;a href=&quot;http://www.cfcunit.org/cfcunit&quot;&gt;cfcUnit site&lt;/a&gt; later on today, but the link below will take you to the download page:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=100854&amp;package_id=126568&amp;release_id=483297&quot;&gt;http://sourceforge.net/project/showfiles.php?group_id=100854&amp;package_id=126568&amp;release_id=483297&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Let me know how it goes. I look forward to any feedback.&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Fri, 02 Feb 2007 01:34:47 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2007/2/2/You_want_it,_you_got_it!</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>All this talk of cfcUnit is making me nervous...</title>
				<link>http://www.pjk.us/paul/index.cfm/2006/7/31/All_this_talk_of_cfcUnit_is_making_me_nervous...</link>
				<description>
				
				&lt;p&gt;There are a number of people writing of the improvements in the 
latest version of cfcUnit, and I have not been one of them. So, you 
might be wondering why. Well, this last month since CFUnited, I have 
been busy making cfcUnit 1.1 ready for full release. That means fixing 
some bugs, adding some new assertions, and most importantly making sure 
that there is some better documentation available. On top of all that, 
though, I have been very busy making sure that you can run cfcUnit from 
everyone&apos;s favorite build tool, Ant.&lt;/p&gt;

&lt;p&gt;Apparently, the absence of a cfcUnit Ant task and the existence of 
one for CFUnit has been a critical distinction between the two CF testing 
frameworks, giving people a reason not to use cfcUnit. Well, at CFUnited
John Paul Ashenfelter took the initial stab at this elusive feature to
show that it could be done without &lt;em&gt;too&lt;/em&gt; much effort using the
existing test runner that produces its results in WDDX.&lt;/p&gt;

&lt;p&gt;There were a couple of problems with the first implementation, first
among them that &lt;a href=&quot;http://www.jdom.org&quot;&gt;JDOM&lt;/a&gt; was used to process 
the XML document. This meant that when using the cfcUnit Ant task, you 
had to first download and install the JDOM libaray (and any of its
subsequent dependencies) somewhere in the Ant classpath. A number of
people discovered just how difficult (and not to say tedious) this process
was for them just to get going.&lt;/p&gt;

&lt;p&gt;Another problem was that the data format produced by the test runner was 
WDDX, a format that isn&apos;t very friendly to someone trying to read using
XPath expressions since it really conveys no meaning at all to anything
besides another WDDX parser.&lt;/p&gt;

&lt;p&gt;So, what did I do about this?&lt;/p&gt;

&lt;p&gt;Well, the first thing I did was come up with a new XML grammar that
better describes the test results in a much more concise way. Once the
format was in nailed down, I wrote a test runner to produce that XML. Once
that was done, I needed to fix the problem posed by JDOM and its numerous
dependencies.&lt;/p&gt;

&lt;p&gt;One thing that is nice about Ant is that it is configured using XML. In 
fact, it uses &lt;a href=&quot;http://xerces.apache.org/xerces2-j/&quot;&gt;Xerces&lt;/a&gt; and &lt;a href=&quot;http://xml.apache.org/xalan-j/&quot;&gt;Xalan&lt;/a&gt; to process build configuration files, and I
figured the cfcUnit task could take advantage of the fact that by running
inside Ant it already has access to these libraries. So, after a bit of
work, the cfcUnit Ant task is now a lot easier to install without any
external libraries.&lt;/p&gt;

&lt;p&gt;Now, some people might be wondering why I have gone to all this trouble
of producing XML in the test runner and parsing it in the Ant task. Why not
just format the text in ColdFusion and just display it in the console? Well,
there is a good reason for this, and its pretty simple really. By sending
raw data to the client, I can give the cfcUnit task a lot of options in
how it handles errors and failures in both the individual tests and in the
test runner itself. It can be configured to halt a build when something fails
or to keep going, or show a full formatted stacktrace generated by an error 
inside a test.&lt;/p&gt;

&lt;p&gt;Anyhow, after working with Ant for a little bit and seeing how Eclipse
can automatically run cfcUnit whenever a file is changed, I can see why
some people have gotten all bent out of shape because cfcUnit did not have
an Ant task, but I&apos;m sure that will all change soon.&lt;/p&gt;

&lt;p&gt;Anyhow, here are some of the things others have been saying about cfcUnit lately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://corfield.org/blog/index.cfm/do/blog.entry/entry/Unit_Testing_Love_Affair&quot;&gt;Unit Testing Love Affair&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.markdrew.co.uk/blog/index.cfm/2006/7/26/CFCUnit-Assertions&quot;&gt;CFCUnit Assertions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.corfield.org/blog/index.cfm/do/blog.entry/entry/Automated_Testing_with_cfcUnit&quot;&gt;Automated Testing with cfcUnit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://cdscott.blogspot.com/2006/07/thank-you-paul-and-john-paul.html&quot;&gt; Thank you Paul and John Paul!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
				
				</description>
						
				
				<category>unit testing</category>				
				
				<category>ant</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Mon, 31 Jul 2006 19:58:00 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2006/7/31/All_this_talk_of_cfcUnit_is_making_me_nervous...</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>cfcUnit at CFUnited</title>
				<link>http://www.pjk.us/paul/index.cfm/2006/6/29/cfcUnit_at_CFUnited</link>
				<description>
				
				&lt;p&gt;There has been a lot more attention paid to testing CFCs this year at CFUnited, and cfcUnit is right there at the front when discussing unit testing one&apos;s CFML. Perhaps the biggest proponent of unit testing has been John Paul Ashenfelter and his talks on Agile Development and Testing ColdFusion. Additionally, I have seen demos of unit testing by &lt;a href=&quot;http://cdscott.blogspot.com/&quot;&gt;Chris Scott&lt;/a&gt; when showing off different functionality of the ColdSpring framework.&lt;/p&gt;
&lt;p&gt;A side effect of this attention has been that there will soon be a new Ant task written by John Paul that will allow cfcUnit to be run as a part of  an automated build, but it could also be run from within Eclipse just as other unit testing frameworks do now.&lt;/p&gt;
				
				</description>
						
				
				<category>unit testing</category>				
				
				<category>CFCs</category>				
				
				<category>ColdFusion</category>				
				
				<category>cfcUnit</category>				
				
				<category>cfunited</category>				
				
				<pubDate>Thu, 29 Jun 2006 13:50:00 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2006/6/29/cfcUnit_at_CFUnited</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Unit tests to the rescue!</title>
				<link>http://www.pjk.us/paul/index.cfm/2005/5/17/Unit_tests_to_the_rescue!</link>
				<description>
				
				&lt;p&gt;It&apos;s amazing what you discover about your code when you try to write unit tests for it after the fact. When I was developing &lt;a href=&quot;http://www.tartanframework.org/tartan&quot;&gt;Tartan&lt;/a&gt; some months ago, all the testing I did was manual. I just checked that it acted the way I wanted to under certain configurations, but as I moved forward, some tests would no longer work since the code they were testing no longer existed or worked in a different manner. Really, I was testing the code to validate ideas and ways of doing things.&lt;/p&gt;

&lt;p&gt;The biggest problem, though, was that I was not really testing small units of functionality like method calls, but in larger units of general behavior. How then would I know if something broke as I made changes to the core framework code?    The simple answer is that it would throw some exception someplace and I might know how to fix it. But really, I wouldn&apos;t know since I had nothing in place to do any sort of regression testing. So far, that has worked.&lt;/p&gt;

&lt;p&gt;A couple of weeks ago, I decided that this needed to change. As Tartan has moved forward, I have gotten a lot of requests for changes, bug fixes, and enhancements. Many of these changes aren&apos;t so simple and require a good idea of how things are put together. Some people have sent me code that makes some of these changes, but it is really difficult to see how these changes affect the rest of the code.&lt;/p&gt;

&lt;p&gt;So, I decided that before any important changes were made to the framework, there would be unit tests to verify all of the current code. It was a tough decision since there is so much code to test and there are a lot of things I would like to do with the framework. There are several things that guided my decision. First, I really need to know exactly what the code is doing and how it can break. The only way to do this is through specific and repeatable tests. Second, as more people use the framework and the code evolves backwards-compatibilty becomes more important that ever. The only way to track this is to have tests that guarantee pre-existing interfaces and behavior. Third, I am not the only person that would like to make contributions to the codebase. As I stated earler, several people have expressed interest in improving the code and have submitted code highlighting these changes. Without any formal unit tests in place, it is more difficult for anyone involved (even me) to know if the change interferes with anything else or just doesn&apos;t work. Additionally, any new code would be given its own set of tests that run with all the others.&lt;/p&gt;

&lt;p&gt;So far, I have written about 45 tests  using &lt;a href=&quot;http://www.cfcunit.org/cfcunit&quot;&gt;cfcUnit&lt;/a&gt;, and I am not even half way yet. I have however learned quite a bit about some of the current weaknesses that exist in my code, and I have even discovered some rather subtle bugs that I didn&apos;t really see in my earlier testing. I have written tests for these and fixed them. I also see a lot of things I really want to change, and that has been the hardest part in a way.  Part of me just wants to go ahead and introduce new features and move things forward, but I realize that in order to move forward I have to know where I stand. I can&apos;t do that without the tests. So, I make a list and move on to writing more tests.
&lt;/p&gt;

&lt;p&gt;I have been asked when the next release of Tartan will be coming out, and my answer is after these tests are written. It is an investment in the future of the framework and the community of people use it and want to contribute to it.&lt;/p&gt;
				
				</description>
						
				
				<category>unit testing</category>				
				
				<category>tartan</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Tue, 17 May 2005 13:49:00 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2005/5/17/Unit_tests_to_the_rescue!</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>New cfcUnit release coming soon.</title>
				<link>http://www.pjk.us/paul/index.cfm/2005/4/17/New_cfcUnit_release_coming_soon.</link>
				<description>
				
				&lt;p&gt;
After taking a look at the cfcUnit code with CFMX 7, I have discovered some things that have changed from CFMX 6.1 to 7. Basically, you can no longer directly instantiate the class &quot;WEB-INF.cftags.component&quot;, and I did this in a number of places in the framework&apos;s self tests. There are also some issues with the displayed results, so I am going to revisit the style information.
&lt;/p&gt;
&lt;p&gt;
I suppose this will be a good time to also go ahead and make it offically a 1.0 release (which it really has been for almost a year).
&lt;/p&gt;
				
				</description>
						
				
				<category>CFMX 7</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Sun, 17 Apr 2005 01:02:14 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2005/4/17/New_cfcUnit_release_coming_soon.</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>New cfcUnit mailing list</title>
				<link>http://www.pjk.us/paul/index.cfm/2005/2/15/New_cfcUnit_mailing_list</link>
				<description>
				
				&lt;p&gt;I have been receiving more emails recently regarding cfcUnit and as I answer them I wish others could see the questions and responses. So, happy with the list that&apos;s going so far for Tartan, I felt that creating a list for the framework might be a good idea.&lt;/p&gt;

&lt;p&gt;
If you are interested in joining the list, go to &lt;a href=&quot;http://lists.topica.com/lists/cfcunit&quot;&gt;http://lists.topica.com/lists/cfcunit&lt;/a&gt; and subscribe on the site.
&lt;/p&gt;
				
				</description>
						
				
				<category>cfcUnit</category>				
				
				<pubDate>Tue, 15 Feb 2005 22:27:54 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2005/2/15/New_cfcUnit_mailing_list</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>CFC Birds of a Feather tonight...</title>
				<link>http://www.pjk.us/paul/index.cfm/2004/11/2/CFC_Birds_of_a_Feather_tonight...</link>
				<description>
				
				&lt;p&gt;Well, tonight I attended the Bird&apos;s of a Feather session for CFCs that Ray Camden was good enough to set up for us.  It seemed to be a more diverse group than last year and more people seemed to be interested in how things are done and why. It wasn&apos;t the gripe session that last year tended to be, and instead questions of &quot;How  do I learn how to use components?&quot; were more important.  We tended not to focus on what they could not do and instead reflected on different solutions to similar problems.&lt;/p&gt;

&lt;p&gt;One person suggested starting with database queries and moving them into components one at a time.  Really, the available documentation and body of knowledge since last year has changed quite a bit as more CF developers have embraced OO techniques using CFCs.&lt;/p&gt;

&lt;p&gt;We also covered the need for good code generation capabilies similar to those in existance for Java developers--especially  for writing boiler-plate code like database CRUD functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.cfcpowertools.com&quot;&gt;Tom Schreck&lt;/a&gt; demonstrated a phenominal tool that will create a CFC, database tables that map to that CFC and the form for dealing with that CFC all in one place.  He&apos;s spent quite some time on it, and it is something worth looking at and investing time and support in.&lt;/p&gt;

&lt;p&gt;I also inquired within the group to see if anyone was using cfcUnit and if so what they thought of it.  A couple of people in the room were familiar with it and liked it.  Once again, I was reminded of the need for even more and better documentation... something I will have to work on.&lt;/p&gt;

&lt;p&gt;Anyhow, it was a great session and I hope to get a chance to follow up with some of the attendees later on this week.&lt;/p&gt;
				
				</description>
						
				
				<category>MAX 2004</category>				
				
				<category>CFCs</category>				
				
				<category>ColdFusion</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Tue, 02 Nov 2004 23:44:56 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2004/11/2/CFC_Birds_of_a_Feather_tonight...</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>cfcUnit at BACFUG</title>
				<link>http://www.pjk.us/paul/index.cfm/2004/7/30/cfcUnit_at_BACFUG</link>
				<description>
				
				&lt;p&gt;Well, tonight I finally presented cfcUnit to &lt;a href=&quot;http://www.bacfug.org&quot;&gt;BACFUG&lt;/a&gt;.  I didn&apos;t have any slides prepared, so we just discussed some general concepts of unit testing and best practices.  We went over a bit of code and I just created example test code as we went along to answer specific questions that people had.&lt;/p&gt;
&lt;p&gt;
People wanted to see how it worked, what it took to get started writing tests, and how  it could be extended to provide more assertion functions. I think that the code-centric look at cfcUnit worked out rather well.  In fact, we even found a bug in one of the error message display functions--one which I just fixed.&lt;/p&gt;
&lt;p&gt;
I also showed how you could use the framework without using MachII to run the tests in about 5 or 6 lines of code in a standard .cfm file.  It was a good excercise and it pointed out that a non-MachII test runner needs to be included in the distribution.  This will allow someone to see how it works without having to worry about or understand how MachII is working.&lt;/p&gt;
&lt;p&gt;
I&apos;ll probably do that this weekend and publish the updated version on right away.&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Fri, 30 Jul 2004 01:45:23 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2004/7/30/cfcUnit_at_BACFUG</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>cfcUnit Distribution Updated!</title>
				<link>http://www.pjk.us/paul/index.cfm/2004/7/3/cfcUnit_Distribution_Updated!</link>
				<description>
				
				Because the installation processes for cfcUnit was more complicated than it had to be, I reorganized the distribution and overhauled the installation instructions.  I&apos;m hoping that this straightens out any confusion over how to get it all working. Go to &lt;a href=&quot;http://www.cfcunit.org&quot;&gt;http://www.cfcunit.org&lt;a&gt;.
				
				</description>
						
				
				<category>cfcUnit</category>				
				
				<pubDate>Sat, 03 Jul 2004 17:25:24 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2004/7/3/cfcUnit_Distribution_Updated!</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>White Screen of Death</title>
				<link>http://www.pjk.us/paul/index.cfm/2004/7/1/White_Screen_of_Death</link>
				<description>
				
				Apparently there are some problems with the installation instructions for cfcUnit.  If you have any specific problems with the install, let me know.  I&apos;m working on resolving some issues that have come up in the last couple of days.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>Mach-II</category>				
				
				<category>cfcUnit</category>				
				
				<pubDate>Thu, 01 Jul 2004 13:16:21 -0700</pubDate>
				<guid>http://www.pjk.us/paul/index.cfm/2004/7/1/White_Screen_of_Death</guid>
				
			</item>
			
		 	
			</channel></rss>