Re: [Nunit-users] What do you think about Constraint modifiers?
"Charlie Poole" <[email protected]> Tue, 12 Aug 2008 17:30:54 -0700
| Newsgroups | gmane.comp.windows.dotnet.nunit.devel |
|---|---|
| Message-ID | <000001c8fcdb$e43d9e60$6401a8c0@ferrari> |
Hi All, Feedback was light on the list, but several of you engaged me directly. My conclusions are... 1) The mechanism is a good one, but may need some better explanation. Logically, these are "Modifiers" even though they are implemented as getters and methods returning a value. The fact is that this is already a well-established pattern in other fluent interfaces. 2) Not all the existing modifiers are necessarily useful. I have my doubts about AsCollection and will look at using the types passed in to determine how the comparison is actually made. 3) In the latest code, I have an approach in place to make sure that modifiers are only allowed where they are expected. So "Is.Null.IgnoreCase" or "Is.Null.Within(.0005)" are not allowed at all. This will take a bit more cleanup, but it's basically solved. 4) I've implemented And and Or operators, which work as you might expect and look cleaner (to me) than & and |. Charlie > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf > Of Charlie Poole > Sent: Friday, August 08, 2008 6:32 PM > To: [email protected]; > [email protected] > Subject: [Nunit-users] What do you think about Constraint modifiers? > > In case you didn't know, those are the things that come after > the main constraint and modify how it acts. Currently we have: > .Within(...) > .IgnoreCase > .RespectCase > .AsCollection > .NoClip > .Comparer(...) > > These are devilishly hard to get right in the syntax. For > example, you can type Is.Null.IgnoreCase in the current code, > which makes no sense. Before putting more time into this, I > wanted to ask whether you use these and whether the current > format works well. > > I know some people are bothered by a form that looks like a > getter property modifying the state of the object, but you > could also say it's just a new paradigm and get used to it. > Obviously, if we abandoned the modifier syntax, we would need > to find other ways to do the same stuf. > > Your thoughts? > > Charlie > > > > > -------------------------------------------------------------- > ----------- > This SF.Net email is sponsored by the Moblin Your Move > Developer's challenge Build the coolest Linux based > applications with Moblin SDK & win great prizes Grand prize > is a trip for two to an Open Source event anywhere in the > world http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Nunit-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/nunit-users > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/