You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Suran Jayathilaka <su...@gmail.com> on 2008/05/09 21:18:52 UTC
Test conversion - fixture specific table creation
Hi,
I'm currently working on converting the test store/streamingColumn to JUnit.
One problem I am facing is as follows.
The many test methods in this class have create table statements,
mostly with the same table name "foo".
A best practice is to move the create statements to the
CleanDatabaseTestSetup.decorateSQL() method in baseSuite(). But in
this case, that'll mean more than 20 unnecessary tables that get
created and dropped for each and every fixture, as according to my
understanding, the decorateSQL() method is run before each fixture.
Is this sort of behavior acceptable in the context of this testcase?
Or is there a better way to have only the table required for a
specific fixture be created, while retaining the automatic cleanup
provided by the decorateSQL() method?
Thanks.
Suran.
Re: Test conversion - fixture specific table creation
Posted by Kathey Marsden <km...@sbcglobal.net>.
Suran Jayathilaka wrote:
> Hi,
>
> I'm currently working on converting the test store/streamingColumn to JUnit.
> One problem I am facing is as follows.
>
> The many test methods in this class have create table statements,
> mostly with the same table name "foo".
> A best practice is to move the create statements to the
> CleanDatabaseTestSetup.decorateSQL() method in baseSuite(). But in
> this case, that'll mean more than 20 unnecessary tables that get
> created and dropped for each and every fixture, as according to my
> understanding, the decorateSQL() method is run before each fixture.
>
>
decorateSQL is run only once per class. (setup runs once per fixture)
> Is this sort of behavior acceptable in the context of this testcase?
> Or is there a better way to have only the table required for a
> specific fixture be created, while retaining the automatic cleanup
> provided by the decorateSQL() method?
>
>
I think it is fine to have the 20 tables created in decorateSQL. The
other alternative might be to create the table as part of the fixture
itself, but then if you use the same name as is done in the current
test, one failure might lead to cascading failures, so I would vote for
keeping the create tables in decorateSQL.
Kathey