JOEZACK.COM Code Musings and Such

7May/090

Feels Good

I love MXUnit, and MXUnit loves me!

I love MXUnit, and MXUnit loves me!

Safe. Warm. Fuzzy. Beautiful.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
17Apr/090

MXUnit and Me

mxunit1If you've been keeping up with my blog over the last couple months, then you already know that I've been experimenting with test driven development. I love the work flow, the way it makes me view my code, and the peace of mind...I just don't know that it will pay off in my work environment. Hence the experimentation.

Most of my TDD dabbling up to this point has been done in Ruby. I've finally gotten around to messing around with some of the major ColdFusion testing frameworks: cfunit, cfcUnit and finally MXUnit.

After doing small projects with each of them, I've finally decided to settle down with MXUnit. It's got decent docs, a nice work around for private methods, I dig the web interface, the eclipse plug-in is great and creating my own stubs for the generator was a snap!

In short: Two thumbs up!

Here's my test. I'm still really new to this sort of thing, so I'd love feedback should you feel so inclined:


	

		function Setup() {
			this.cfc = CreateObject( "component" , "BaseObject" );
			this.cfc = this.cfc.init();

			makePublic( this.cfc, "SetInstance" );
			makePublic( this.cfc, "Set" );
			makePublic( this.cfc, "Has" );
			makePublic( this.cfc, "Get" );
			makePublic( this.cfc, "OnMissingMethod" );
		}

		function TestSetInstance() {
			var value = "a";
			AssertEquals( value, this.cfc.SetInstance( value ) );

			value = StructNew();
			AssertEquals( value, this.cfc.SetInstance( value ) );
		}

		function TestGetInstance() {
			var value = "a";

			this.cfc.SetInstance( value );
			AssertEquals( value, this.cfc.GetInstance() );

			value = "b";
			this.cfc.SetInstance( value );
			AssertEquals( value, this.cfc.GetInstance() );
		}

		function Testinit() {
			var value = "a";

			this.cfc = this.cfc.init( value );
			AssertEquals( value, this.cfc.GetInstance() );

			this.cfc = this.cfc.init();
			AssertEquals( StructNew(), this.cfc.GetInstance() );
		}

		function TestSet() {
			var field = "a";
			var value = "1";

			AssertEquals( value, this.cfc.Set( field, value ) );

			field = "w";
			value = "2";

			AssertEquals( value, this.cfc.Set( field, value ) );
		}

		function TestHas() {
			var field = "a";
			var value = "1";

			AssertEquals( false, this.cfc.Has( field ) );

			this.cfc.Set( field, value );
			AssertEquals( true,  this.cfc.Has( field ) );

			field = "w";
			value = "2";

			AssertEquals( false, this.cfc.Has( field ) );
		}

		function TestGet() {
			var field = "a";
			var value = "1";

			this.cfc.Set( field, value );
			AssertEquals( value, this.cfc.Get( field ) );

			field = "w";
			value = "2";

			this.cfc.Set( field, value );
			AssertEquals( value, this.cfc.Get( field ) );
		}

		function OnMissingMethod() {
			var value = "a";

			AssertEquals( value, this.cfc.SetSomething( value ) );
			AssertEquals( value, this.cfc.GetSomething() );
		}

	

Click to download the component I'm testing and the file above. Now.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
4Jan/090

Ruby Line Formatting

I wrote a little utility to turn something like this

this=that,
something_else="something else entirely"

Into the much easier to read

this           = that,
something_else = "something else entirely"

I use it in conjunction with my clipboard utility so I can just copy, run, paste. I mostly use this when I'm working with ColdFusion, so it also works for those pesky cfsets.

Usage: (After copying your target text to your clipboard)

ruby clipboard_format_set.rb

Download It!

PS: I'd love to set some of my scripts up as Eclipse shortcuts so I've been toying with the idea of writing an Eclipse plug-in to act as a proxy. I realize you can set up and run "External Tools", but I have yet to see a way to bind a key. I'd like the plug-in to take care of the "pasting" to save me that extra ctrl-v. Maybe this would make a good New Years Project?

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
7Dec/080

Ganymede JSEclipse Alternatives

I've been having memory issues since setting up JSEclipse on eclipse. I tried googling around first but had a hard time finding any plugins that supported Ganymede.

Once again, stackoverflow came to my rescue by suggesting (free for non-commercial use) Spket and while I haven't used it extensively yet it's been working great so far!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
5Dec/080

CFEclipse/Ganymede Line Number Problem

My tray line numbers weren't showing up in CFEclipse since upgrading to the Ganymede version of eclipse. My preferences were set correctly. I did a bit of googling but I didn't actually find the solution until a few links down, so I thought I'd share the link love!

http://blog.critical-web.com/blog/index.cfm/2008/8/3/Enabling-Line-Numbers-In-CFEclipse-1316-On-Eclipse-Ganymede-34

1. In directory
[workspace]/.metadata/.plugins/.org.eclipse.core.runtime/.settings/

2. Edit (or create) a text file called
.org.cfeclipse.cfml.pref

3. Add the following line:
lineNumberRuler=true

4. Restart Eclipse

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)