Re: How to extend the constraint model with custom constraints
"Simone Busoli" <[email protected]> Thu, 7 Aug 2008 22:59:58 +0200
| Newsgroups | gmane.comp.windows.dotnet.nunit.user |
|---|---|
| Message-ID | <[email protected]> |
I've TDDed it for some minutes and I found it's simpler than I thought. I
can do this now:
Assert.That(2 + 2).Iz.EqualTo(4);
Assert.That(2 + 2).Iz.Not.EqualTo(5);
Assert.That( list).Iz.EqualTo(new string[] { "foo", "bar" });
Assert.That(7).Iz.GreaterThan(3);
Assert.That(7).Iz.Not.GreaterThan(8);
Assert.That(7).Iz.GreaterThanOrEqualTo(7);
I know this would be a breaking change Charlie, but don't you think this
could be better than the constraint model?
The advantages I see are:
- discoverability: just type DOT after That and you see what you have
available
- fluency
- extensibility
Thoughts?
On Thu, Aug 7, 2008 at 9:47 PM, Simone Busoli <[email protected]>wrote:
> What about, instead of this:
>
> Assert.That(value, Is.Not.EqualTo(other));
>
> this one?
>
> Assert.That(value).Is.Not.EqualTo(other));
>
> I don't know it if would ever work, but I like it more, and I think it
> could be extensible since Is/Has is no longer forced to be a static class.
>
> On Thu, Aug 7, 2008 at 9:39 PM, Simone Busoli <[email protected]>wrote:
>
>> What's the best way of adding a new constraint so that I can use it,
>> preferably before a patch is submitted, applied and a new version is
>> released?
>> I am thinking about extension methods, but the classes Is, Has... expose
>> constraints with static methods. I can create my constraint manually in the
>> second argument of Assert.That, but I would lose the fluency of the syntax.
>>
>
>
-------------------------------------------------------------------------
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