Noise of DSL

May 27, 2009 at 8:40 AM

Why using Narrative object? I think it increase noise of test language.

May 28, 2009 at 9:13 AM

The once of the key differences between a standard string and a Narrative.Text is the difference between Pending and Passed. Look at example two

How would you suggest making the distinction between the two? (We are looking at another release and could incorporate the idea).



May 30, 2009 at 4:55 AM

I thing using Pending() is more clear. (Sorry for my bad English)

.WithScenario("Writing specifications again")
.Given("I have a narrative").Pending()
.When(() => TheTestIs_("run"))
.Then("this will now pass", passMe).Pending();

Oct 15, 2009 at 11:40 AM

That's a good idea! Will try to include that in our next release

Cheers - Rob


Nov 17, 2009 at 3:14 PM

Hi Nima

The latest branch code (FlitBase) incorporates your suggestion. I've added Pass(), Pend() and Fail(string message) methods to each executable state in the fluent interface.

This branch should be released sometime soon

Cheers - Rob

Jul 8, 2010 at 9:18 AM

What happend to this feature?

Jul 8, 2010 at 9:24 AM
We decided that string-based methods could only represent pending steps. K.I.S.S.
Jul 8, 2010 at 9:45 AM

What if the story works technically, but the customer does not except it for whatever reason:

TheStory("Do sth.").Pending("Because the customer is sure if he like the idea")...

That way the report stays representative and the loop with the customer is enforced


Jul 8, 2010 at 9:56 AM
If the story works technically, but the customer doesn't want it, then you need to involve the customer before you start coding! The whole point of BDD (and especially the "InOrderTo" step) is to build software that matters. Non-technical points aside, you can just call a method "ThisStepPendsBecauseTheRequirementsAreUnderDiscussion", which obviously throws a NotImplementedException, although my preference would be to "pendify" whatever technical step was being questioned. Tagging would also come in useful to your report here!
Jul 8, 2010 at 10:16 AM
Edited Jul 9, 2010 at 6:30 PM

Gosh, throwing the ImplemtendException by hand or via an extension method is so obvious :-)

Non-technical, it depends on the process and the customer. I work on projects where existing requirements/stories are changing constantly during the whole development process. So I would like to see some build in helper functions. But lets see, currently I am just doing my first steps...

Jul 8, 2010 at 10:22 AM
Definitely look into using Tags to track things like that