Reputation: 17900
I am close to finishing an ORM for RethinkDB in Python and I got stuck at writing tests. Particularly at those involving save()
, get()
and delete()
operations. What's the recommended way to test whether my ORM does what it is supposed to do when saving or deleting or getting a document?
Right now, for each test in my suite I create a database, populate it with all tables needed by the test models (this takes a lot of time, almost 5 seconds/test!), run the operation on my model (e.g.: save()
) and then manually run a query against the database (using RethinkDB's Python driver) to see whether everything has been updated in the database.
Now, I feel this isn't just right; maybe there is another way to write these tests or maybe I can design the tests without even running that many queries against the database. Any idea on how can I improve this or a suggestion on how this has to be really done?
Upvotes: 3
Views: 509
Reputation: 4353
You can create all your databases/tables just once for all your test.
You can also use the raw data directory: - Start RethinkDB - Create all your databases/tables - Commit it.
Before each test, copy the data directory, start RethinkDB on the copy, then when your test is done, delete the copied data directory.
Upvotes: 3