That does seem to be the way to go about implementing such a system. I will see how I go, and will publish the results if I end up with something that seems reusable.

-Patrick

On 19/04/2010 6:00 PM, Thomas Nunninger wrote:
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<[email protected]>   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?



Reply via email to