Saturday
Apr182009

AltNetSeattle: Why We Stopped Using AutoMockingContainer

 

At the AltNetSeattle Open Spaces conference at the end of February, Aaron Jensen convened a session on how the AutoMockingContainer that they created is not working for them and where to go from here. I went into the session expecting an overview of Machine.Container, but it turned out to be more of a discussion of the issues that people are having using mock objects in Test Driven Development.

Basically, the problem is that refactoring break tests because they are brittle or because the tests are no longer relevant after the refactoring.  So, you spend your time maintaining tests, not maintaining code.

AutoMockingContainer

Aaron described the evolution of their process as starting with manual mocking in fine-grained unit tests, but found that they were creating a lot of mocks.  In response, they came up with the AutoMockingContainer.  It worked great, but mocking entities was not as useful because they were persistent ignorant anyway.

Fluent Builders

This led to a move towards fluent fixtures or what some people call fluent builders (e.g. new Student(“Bob”).EnrolledIn(new Course(“101”)) ).  The goal of fluent builders is to make it easy to create object graphs, but not necessarily specify the business behavior.  However, even this process has problems because refactoring or decomposing a service breaks the tests because they are no longer relevant.

Introducing a Container

Jimmy Bogard asked about introducing an Inversion of Control (IoC) container.  Aaron said that the problem with containers is that registration time is slow and they can get in the way of testing.  For example, a container would cache an object, but you might want more control than a traditional container allows you to have.  For testing, you need a container that does fast registration, gives you the ability to override with mocks, and allows for lifetime reset.  Machine addresses some of these issues, but he did not go into detail on it.  Instead, the session became more of a discussion about how different people deal with the brittleness.

No real answers, yet

Aaron went through a couple of examples of starting with the controller and adding checkpoints as you flesh out the implementation.  Also, he brought up the idea of having tests that fail (warning tests?), but don’t stop the rest of the tests.  Ian Cooper mentioned their use of Fitnesse tests. (Read more about the session in Ian’s blog post about AltNetSeattle.)  Aaron also mentioned the Ruby Synthesis project which I would like to investigate further.

I came away from the session with a lot of new ideas, but no real answers, yet.  However, it is nice to have the opportunity to listen to people that are further down the path than I am.  Thanks to all who participated.

You can watch the video here:

 

Here are my Session Notes.

Sunday
Apr122009

AltNetHouston: FubuMVC session

Technorati Tags: , ,

At the AltNetHouston Open Spaces conference last weekend, I convened a session on FubuMVC.  Selfishly, I wanted to get Chad Myers and Jeremy Miller to talk more about their alternative MVC stack.

FubuMVC is an MVC framework built on .NET.  It is often looked at as an alternative to Microsoft’s ASP.NET MVC. framework that shipped last month.  FubuMVC is a framework that grew organically out of work that Jeremy and Chad were doing at Dovetail Software.  The Fubu in FubuMVC is short for For Us By Us.

At Kaizenconf, they gave a workshop called Using and Abusing ASPNET MVC for Fun and Profit.  Based on the interest from that workshop, Chad looked to recreate the framework that they were using at Dovetail as an open-source project.  Over the Christmas break, he coded the core of framework (available on Google Code here).

Unfortunately, my laptop died during the AltNetHouston conference and I was unable to keep my MinoHD camera charged.  So, I was only able to record the first half hour of the hour and ten minute session.  There was another video recording.  I will try and track that down and post a link here if and when it is available.

In the meantime, here is the first half hour:


AltNetHouston: FubuMVC from Weston M. Binford III on Vimeo.

Also, here are the Session Notes.

Sunday
Apr122009

AltNetHouston: Opening Circle Video

Technorati Tags: ,

Last weekend, I attended the AltNetHouston Open Spaces conference.  Thanks to Ben Scheirman, Claudio Lassala, and J Sawyer for organizing the event and to Steven “Doc” List for facilitating.  I especially enjoyed the sessions on FubuMVC and Why Blog and Open Source.

As with previous conferences, there were a number of people videoing the proceedings.  I had my MinoHD camera, but had battery charging issues after my laptop died.  I did record the Opening Circle Friday night and part of the FubuMVC session on Saturday.

If you are not familiar with Open Spaces conferences, the participants get together at the beginning of the conference and create the agenda as a group.  Doc is an excellent facilitator.  Ben opened the conference and then turned it over to Doc to explain how Open Spaces work.  Finally, the attendants proposed sessions for the weekend.

Here is the Opening Circle video:


AltNetHouston: Opening Circle from Weston M. Binford III on Vimeo.

You can see other videos and session notes for most of the sessions on the HoustonAltNet wiki.

Friday
Apr102009

"The perfect is the enemy of the good"

So, at the risk of joining the revolution after it is already over, I have decided to start blogging.

This is something that I have planned to do for almost five years, but never started because I was afraid of starting and then not sticking to it, picking the wrong platform, or just not having enough to say.  However, the Why Blog and Open Source session at the ALT.NET Houston Open Spaces conference last weekend gave me the kick that I needed to get started.

Instead of trying to get it perfect.  I'm just going to start.  Hopefully, there will be something here worth reading someday, but I know that I will never get it right if I don't start somewhere.  So here goes.  I take solace in the fact that nobody is probably reading.  If you are, please bear with me as I find my voice.

Page 1 2