While looking around for something to match EasyB a BDD framework built in Java\Groovy I came across this Boo based DSL for MSpec. Dynamic languages (the meta programming abilities in particular) make for a far easier english reading test than static languages can create and it's good to see what Boo is opening up on the CLR.
SpecFlow was a new one on me with a style of BDD that is a lot like Cucumber, more details in this post.
Sean Foy talks about his implementation of AndAnd (following the example of Ruby's Object#AndAnd) using first LINQ AST and then later Monads. The discussion around Monads I found quite interesting.
New month, new year, new decade and my first post (well not strictly speaking but I was getting complaints). I'm going to try and start posting more often this year and hopefully get back to posting about MbUnit again (I've even started contributing again, more on that at a later date).
To kick things off I'm going to talk a little about a new feature in MbUnit v3, AssertEx. This assert makes use of lambda expressions to express your test, all you need is an additonal referance to the MbUnit35.dll. So rather than this.
int value = numbers.Add(1,1);
AssertEx.AreEqual(2, value);
I can do this
int value = numbers.Add(1,1);
AssertEx.That(() => value == 2);
I rather like how expressive this is, I could also do this.
int value = numbers.Add(1,1);
AssertEx.That(() => value == 2 && value > 1);
Combine as many expressions for my data as I wish, if you prefer you can break it down.
int value = numbers.Add(1,1);
Assert.Multiple(() =>
{
AssertEx.That(() => value == 2);
AssertEx.That(() => value > 1);
});
I recommend you explore AssertEx more.
This blog has been very quiet the last few months, in fact this year I've for the first time (since I started blogging some 8 years ago) missed months, I guess as time goes by you get less and less time :) As my last post of the year however I wanted to restore a tradition and look back on this year and gaze into my crystal ball for next year.
This year Microsoft has pushed foward the next phase of it's developer toolset, key amongst them has been MVC 2, C#\VB, Silverlight 4, TS2010, VS2010 and the .NET framework v4.0. While key milestone products I think by the end of 2010 several will have reached sp or interim release (not to mention talk will have started of TFS\VS 2011\12). I do think that VS\TFS2010 by RTM will have solved a great many perf problem, I do see it however only as a foundation with greater things to come.
Microsoft has been quietly getting in new talent, key hires have included the likes of Louis DeJardin (Spark view engine creator) and Jon Galloway while this year has also been bad for the loss of staff I do think that next year Microsoft will be hiring wide again.
On the OSS front this year the Codeplex foundation started life and by the end of the year already includes several ex Microsoft projects, I do think that next year several other projects will join them (and one of them will be something big, NHib, Rhino say). Next year I'd also expect to see NUnit 3.0 and MbUnit 3.4/5 come to life, I also think BDD will gain more and more traction in 2010 in the .NET community.
On a personal level I have new goals and ambitions for next year, see you there.
Jeff and the team have announced MbUnit 3.1, this is another major release from the team with a great deal on offer. Rather than repost please see Jeffs announcement post as there is a great deal of new stuff to see.
CodeRush have shown a preview of their new TestRunner with NUnit and MbUnit support right out of the box. Jeff and the Gallio team have done a lot of work with these kinds of test execution engines (Gallio supports the R# TestRunner for example) and hopefully the CodeRush guys will connect.
While Test Driven Development and TDD frameworks are fast entering the mainstream mind set in the .NET community it seems behaviour-driven development BDD still has some way to go. A quick fire poll dear reader, have you encountered BDD at all? do you use BDD in your testing over TDD? what do you feel the barrier may be (dynamic language over static language, framework etc)? I am interested in hear your thoughts from all sides.
Hudson seems to be a clear choice for the Java crowd over CruiseControl yet seems overlooked in .NET land? You can find a guide to setting up and using Hudson here. It is worth noting that both TeamCity and Hudson support NUnit out of the box, for MbUnit 3 look here for TeamCity and here for Hudson.
The good folks at JetBrains have added a great feature to TeamCity 5.0 EAP (codenamed Darjeeling), connecting builds and defects. If your commit has the defect number attached then TeamCity will go ahead and connect the two so you can look at what defects were fixed in what build. I'd love it all the more if TeamCity could then update the defect status to say FAR (Fixed Awaiting Release). VSTS issue tracker integration would also be nice to see, this product is not yet beta so anything could happen. All JetBrains need now is a configuration management and deployment solution.
More Posts
Next page »