We recently had the discussion about what is a DSL. Now I am thinking about how to test such a thing. Let us take this as an example: when User.IsPreferred and...
Ayende Rahien
Ayende@...
Dec 27, 2007 12:52 pm
3
Hell yes we need to test it - this is a far more important thing to test than any C# algorithm ... business logic that goes wrong is pretty expensive. How do...
How do we test it ... well ... doesn;t this seem like an obvious case for the FIT style tests (table of inputs and epxected outputs) I'd have a tendancy to...
The reason I mention FIT style tests - is that particualr DSL looks like something business users are likely to write (at least something damn close), in which...
Wouldn't they have to maintain both wiki or word fitness tests *and* the dsl language? And the development would have to maintain both the dsl and the fitness...
Another thing that comes to mind is, it would be *very* useful for a DSL like that to be able to show it's flow paths, either as a flow chart or something...
I am thinking about something like a DSL for this. Something like: when: User.IsPreferred = true Order.TotalCost = 1001 execute process_order.boo then: ...
Ayende Rahien
Ayende@...
Dec 27, 2007 1:08 pm
9
Or the DSL could be built with testing in mind ......
My real concern here is that a DSL needs to be either: very simple, very grokable, and very transparent ... or it needs intellisense, resharper, etc etc The...
... sucks. it's not the common usage of "then" in programming languages anyway, but besides that i don't like it, as it joins your tests too close to the...
silky
michaelslists@...
Dec 27, 2007 1:19 pm
13
... following english this should be 'after' not 'when'. ... -- mike http://lets.coozi.com.au/...
silky
michaelslists@...
Dec 27, 2007 1:21 pm
14
Well in your first program you use when condition whereas in this instance you use when:. Seems two ways of expressing the same thing? If the goal is to have...
not sure that I am following. The first DSL is to specify policy and define behavior. The second one to validate it....
Ayende Rahien
Ayende@...
Dec 27, 2007 1:30 pm
16
... the ... I think this depends on the DSL. If I think of a DSL, I think of a language to express intent in a language (== the DSL) which offers the best ...
... Assume that those are working. We are not interested in those. I am interested in making sure that the code does what it is supposed to do...
Ayende Rahien
Ayende@...
Dec 27, 2007 1:57 pm
18
I suggest something like this: Policy when User.IsPreferred and Order.TotalCost > 1000: addDiscountPrecentage 5 applyFreeShipping when not User.IsPreferred ...
The testing DSL is not for specifying conditions, it is for setting state, excecuting and asserting....
Ayende Rahien
Ayende@...
Dec 27, 2007 2:33 pm
20
There's been a lot of conversation about Ruby, Python, Boo compared to (apparently) powershell on one hand and strongly typed languages on the other. What's...
I tend to stick with PowerShell in the corporate world a lot of the time. This choice is mainly because its a MS supported product and the corporate clients I...
Similar to what was said in a thread in the old list, I have been using Ruby internally/privately for automating tasks and quick scripting. I haven't tried to...
I love the idea of using Boo ... I love the idea of using Ruby, but as I am a consultant/contractor, I use what my clients want me to use ... and in an ...
Hey guys The more the merrier I always say. I think we need to realize that as much as we'd all like, ALT.NET is not going to have all its ideas encapsulated...
+1. At the end of the day, its completely a matter of deciding where you want to have your conversation. I'd think being alienated from the other list on...
Indeed ... but as the "ideas, motivations, inspiration, philosophy" etc list, the last one may have become more technical than it should have - but put 200...
Indeed - the other list was often making me depressed ... can we all agree this one is positive thoughts only please :D Disagree, disent, argue, just do it...
That's a very interesting conversation to have. I think it depends how much trust you can build with your client when you're contracting. Ive been pushing...