If you put the factory on the constructor then the tests will appear as if
the fixture was parameterized.

Like this:

Fixture({Mike})
 - Test1
 - Test2
Fixture({Jim})
 - Test1
 - Test2

The presentation above with {Mike} and {Jim} assumes that Person has an
overridden ToString that returns the name of the Person.  If ToString hasn't
been overridden then you will probably see (at least in the current trunk
versions) a description of the properties that make up the person.

eg. Fixture({Person: Name="Jim"})

On Thu, Jan 22, 2009 at 10:24 AM, max2256 <[email protected]> wrote:

>
>  Hi,
>
>    Sorry if you have to repeat yourself, but what would happen if you
> put
>    the factory attribute on the constructor???
>
>    Would the ouptut on the runner (Icarus) look like this?
>
>    -Person("Mike")
>      -- Test1
>      -- Test2
>    -Person("Jim")
>      -- Test1
>      -- Test2
>
>
> Thanx
>
>
> On Jan 21, 3:50 pm, Jeff Brown <[email protected]> wrote:
> > There are several options here.  Here are two of them:
> >
> > 1. Put the row or factory attribute on the constructor.
> >
> > 2. Put the attributes instead on one or more writable properties or
> fields of the class.
> >
> > (Fields, properties, constructor parameters and generic type parameters
> can also be bound positionally or by name using a data source  attribute on
> the class level.  This is useful if you want to use multiple columns of
> values from the same source.)
> >
> > However it is not possible to parameterize setup.  I think you'll find
> the alternatives more than compensate.
> >
> > Jeff.
> >
> >
> >
> > -----Original Message-----
> > From: "[email protected]" <[email protected]>
> > Date: Wednesday, Jan 21, 2009 12:28 pm
> > Subject: MbUnit Re: mixture of TestSuite and DataDriven testing
> > To: "MbUnit.User" <[email protected]>Reply-To:
> [email protected]
> >
> > Hi,
> >
> > Suppose I want to do a similar thing AAA style. Namely, I have several
> > persons created by the CreatePersons method, and for each person, I
> > want to run the Setup method (with a Person argument) and several
> > tests. So, the questions are:
> > - Can we run a parametrized [Setup] the same way as [Test]?
> > - Can we have it class-wide, i.e., put [Factory("CreatePersons")] at
> > the class level?
> >
> > Same question regarding the Row-style testing: can I apply the Row
> > attribute at the class level, and have all my Setup and Test methods
> > parametrized the same way, parameters taken from the class level
> > attribute?
> >
> > Thanks
> >
> > ulu
> >
> > On Jan 21, 12:46 am, Jeff Brown <[email protected]> wrote:
> > > It looks like you're trying to produce a list of Person objects to pass
> to
> > > the tests.
> > > Try this:
> >
> > > public class TestFixture
> > > {
> > >    public IEnumerable<Person> CreatePersons()
> > >    {
> > >        yield return new Person("Mike");
> > >        yield return new Person("Jim");
> > >    }
> >
> > >    [Test]
> > >    [Factory("CreatePersons")]
> > >    public void Test1(Person p)
> > >    {
> > >         Assert.AreEqual("Max", p.Name);
> > >    }
> >
> > >    [Test]
> > >    [Factory("CreatePersons")]
> > >    public void Test2(Person p)
> > >    {
> > >         Assert.AreEqual("Max", p.Name);
> > >    }
> >
> > > }
> >
> > > Here the output will look like:
> >
> > > - Test1({Mike})
> > > - Test1({Jim})
> > > - Test2({Mike})
> > > - Test2({Jim})
> >
> > > It should also be possible to combine data sources with suites like
> this.  I
> > > haven't tried it yet...
> >
> > > [DynamicTestFactory]
> > > [Factory("CreatePersons")]
> > > public IEnumerable<Test> Suite(Person p)
> > > {
> > >     yield return new TestCase("Test1", () => {
> > >        // do something with p.
> > >     });
> >
> > > }
> >
> > > Jeff.
> >
> > > On Tue, Jan 20, 2009 at 12:52 PM, max2256 <[email protected]> wrote:
> >
> > > > Hi,
> >
> > > > I'm new to MbUnit. I would like to know if there is a way of doing
> the
> > > > following with MbUnit V3 or any MbUnit version. (mixture of TestSuite
> > > > and DataDriven testing) :
> >
> > > > [TestFixture]
> > > > public class TestFixture
> > > >  {
> > > >     [Row(typeof(Person), new Person("Max"))]
> > > >     [Row(typeof(Person), new Person("Mike"))]
> > > >     [Row(typeof(Person), new Person("Frank"))]
> > > >     [TestSuite]
> > > >     public TestSuite GetSuite(Person p)
> > > >     {
> > > >          // add tests to TestSuite
> > > >     }- Hide quoted text -
> >
> > - Show quoted text -
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"MbUnit.User" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/MbUnitUser?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to