Re: Recent 2.5 Changes

"Olof Bjarnason" <[email protected]> Mon, 28 Jul 2008 23:14:18 +0200
Newsgroups gmane.comp.windows.dotnet.nunit.devel
Message-ID <[email protected]>
2008/7/28 Charlie Poole <[email protected]>:
> Hi Olof,
>
>> > As usual, this is for those who track the CVS source. The rest will
>> > have to wait for alpha-4, but it shouldn't be too long...
>> >
>> > 1. Classes can have multiple setup, teardown, fixture setup
>> or fixture
>> > teardown methods. Base setups are run before the derived setup and
>> > teardowns are run in reverse. Within the same class
>> declaration, order
>> > is undefined, so it's not too useful but still possible.
>>
>> Is there a specific reason why multiple setups/teardowns per
>> fixture is at all allowed? I would prefer
>> one-setup-per-fixture instead of undefined behaviour.
>
> 1. Some folks have asked for it so as to segregate unrelated
>   setups in different methods - even in different files in
>   the case of partial classes. In such cases, undefined
>   order is not a problem.
>
> 2. It's consistent with NUnit moving away from a philosophy of
>   "we won't give you anything you could hurt yourself with" to
>   "it's up to you what you do with the tool."
>
> 3. It simplifies the code if I don't have to check this.
>
>> >
>> > NOTE: If you /override/ a base class method, you don't have two
>> > methods any more, so only the override runs. Do that if that's what
>> > you want, otherwise don't. :-)
>> >
>> > 2. DataSourceAttribute provides a way to point to data for
>> individual
>> > arguments just as FactoriesAttribute (I still don't like that name)
>> > points to entire test cases.
>>
>> Could you provide a very brief syntax example of this?
>>
>
> [DataSource("MyData")]

Could you elaborate a little bit? What is "MyData"? Is it the name of
a member variable, or maybe an IEnumerable field attributed by a some
kind of name-attribute with the string "MyData"?

>
> FWIW, I find inline data much more conducive to doing TDD. However,
> there can be a need to share data across multiple tests.
>
> Charlie
>
>> >
>> > 3. TestFixtures can now have parameters, which are used in
>> searching
>> > for a constructor. You repeat [TestFixture(...)] just as you do for
>> > [TestCase(...)] and each individualized fixture is created
>> separately
>> > in the tree.
>>
>> Cool! So if I have several classes implementing an interface
>> that should adhere to specific rules specified by tests, I
>> could parameterize the fixture containing those tests with
>> the specific class implementations? Great!
>>
>> >
>> > 4. We already had generic fixtures and now they can have parameters
>> > too. You can specify what types to use in creating a specific class
>> > from the generic declaration in three ways...
>>
>> I have no clue what you are talking about, but I guess it's great ;)
>>
>> >
>> >  1) By preceding the constructor args with a set of
>> >    Types to be used. This won't work if the first
>> >    constructor arg is a Type, of course.
>> >
>> >  2) By using the TypeArgs named property of TestFixtureAttribute
>> >
>> >  3) By using a constructor that makes use of all the
>> >    Type parameters - in that case NUnit will figure
>> >    it out.
>> >
>> > I'm aware that the last bit particuarly needs documentation.
>> > Consider the above as hints for the brave among you.
>> >
>> > 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-developer mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/nunit-developer
>> >
>>
>
>
>
>

-------------------------------------------------------------------------
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=/