Posts

Showing posts from December, 2008

AAAA Unit Testing

A while back Oren wrote about the Arrange, Act, Assert syntax for unit tests. I've seen several other discussions on this and I am not sure if he is the originator but I'll attribute him either way. The syntax I most commonly use ressembles an Arrange, Assert, Act and Assert (AAAA) pattern. Arrange the system in it's initial configuration. Create any collaborators and mocks you may need. Initialize services. Assert that the initial state is correct. For me this is important since so many layer of dependencies exist in modern applications. This is analogous to a control group in the scientific method. In this step I would also test the inverse of later assertion such as the non-existence of objects that should only exist after the Act step. Act on the system by creating/deleting/updating new objects or invoking services. Assert again that the system is in it's expected state. I've caught a lot of bugs using this method. Asserting the initial state may also be a good...

Memcached for Monorail Update

Memcached for Monorail is a session replacement for the Castle::Monorail framework. It uses memcached on the back end for distributing the session across a web farm. I have added some additional notes about Memcached for Monorail . I have also uploaded a binary release . Although I recommend getting the source . No time to discuss much more but feel free to ask questions and I'll answer them. The Memcached session provider is currently being used in a production environment with great success but it definitely has room for improvement. It's aimed squarely at extending the Castle::Monorail session so if you are looking for something more generic than please look else where...or consider switching to MVC with Castle::Monorail ;-)

Monorail installed on a 64bit OS

Installing Castle::Monorail on 64bit IIS7 proves to be much easier than I thought. You must use the 64bit handlers. To make this easy you can just add the handlers to your Web.Config: 136 system.webServer > 137 handlers > 138 add name = " IconHandler " path = " *.ico " verb = " * " modules = " StaticFileModule " resourceType = " File " /> 139 add name = " Monorail-64 " 140 path = " * " verb = " * " 141 modules = " IsapiModule " 142 scriptProcessor = " %windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll " 143 resourceType = " Unspecified " /> 144 add name = " Monorail " 145 path = " * " verb = " * " 146 modules = " IsapiModule " 147 scriptProcesso...