incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Nunninger <tho...@nunninger.info>
Subject Re: Couchdb and PHPUnit
Date Mon, 19 Apr 2010 08:00:17 GMT
Hi,

Am Montag, 19. April 2010 09:44:22 schrieb Patrick Barnes:
> Partly - I was wondering also if there was something similar to the
> functionality phpunit has for initialising database contents from XML
> files, etc.

Why don't you use setUpBeforeClass() and tearDownAfterClass()? In my CouchDB 
related test cases I have something like this:

public static function setUpBeforeClass()
{
    $couchDb = new myCouchDb( self::getCouchDbUri() );
    $dbName = 'some_test_database';

    try
    {
        $couchDb->createDatabase( $dbName );
    }
    catch ( Exception $e )
    {
        $couchDb->deleteDatabase( $dbName );
        $couchDb->createDatabase( $dbName );
    }
}

public static function tearDownAfterClass()
{
    $couchDb = new myCouchDb( self::getCouchDbUri() );
    $dbName = 'some_test_database';
    $couchDb->deleteDatabase( $dbName );
}

HTH

Thomas

>
> On 19/04/2010 5:15 PM, David Coallier wrote:
> > On 19 April 2010 07:16, Patrick Barnes<mrtrick@gmail.com>  wrote:
> >> Has anyone on the list (or elsewhere) written code for phpunit to make
> >> setting up /tearing down couchdb test databases for unit testing easier?
> >
> > I have setup couchdb to be used in unit tests and from the look of
> > your question all you'd have to do is setup the base class that would
> > have a setUp and that would create an instance to the CouchDB
> > databases you have.
> >
> > abstract class TestBaseCouch extends PHPUnit_Framework_TestCase
> > {
> >      protected $couch;
> >
> >      public function setUp()
> >      {
> >          $this->couch = new Couch();
> >      }
> >
> >      public function tearDown()
> >      {
> >          unset($this->config);
> >      }
> > }
> >
> > class TestyouWantTestCase extends TestBaseCouch
> > {
> >      /**
> >       * @expectedException Couch_Exception
> >       */
> >      public function testExceptionFromCouchClient()
> >      {
> >          $this->couch->doSomething();
> >      }
> > }
> >
> >
> > Is that what you mean?



-- 
Thomas Nunninger
Steinhalde 108
79117 Freiburg

Tel.:  +49 761 1201850
Mobil: +49 163 7115153
http://nunninger.info

USt-IdNr: DE259832548

Mime
View raw message