Search Postgresql Archives

Re: Thoughts on "Love Your Database"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Fri, May 20, 2016 at 10:43 PM, Guyren Howe <guyren@xxxxxxxxx> wrote:
On May 20, 2016, at 13:38 , Pierre Chevalier Géologue <pierrechevaliergeol@xxxxxxx> wrote:
>
> Le 04/05/2016 18:29, Szymon Lipiński a écrit :
>> On the other hand, when I was trying to store all my logic in a
>> database, there was just one thing that made me hate it. Testing.
>> Testing the procedures inside the database was not easy, not funny, and
>> too much time consuming.
>
> Yes, very good point.

Are there any best practices or tricks to make this easier?

Strangely I have never had a problem testing stored procedures.  You have to create a data set for the tests of course and that is the hardest part, but there are some really nice things:

1.  If your test scripts always roll back you can run them on a production database as a troubleshooting step
2.  It is easy to hook things up to a TAP harness (whether using PgTAP or some hand-rolled solution).  I think it would be harder to connect to xunit though.  So use TAP ;-)
3.  I usually create a test results table (in my test case, rolled back after!) which stores the test description and pass status.  That makes it easy to check using other tools.

Usually I set aside a range of things (negative id's for example) for testing purposes.
 

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



--
Best Wishes,
Chris Travers

Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor lock-in.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux