From: Adam Brusselback <adambrusselback@xxxxxxxxx>
> Checking data (DML), if functions are doing the right things is something we do in our code unit tests.
This is exactly what I am writing, unit tests for my code (which is pl/pgsql). This is an ELT pipeline for my customers to bulk update their data in my system, with detailed error reporting for any issues per-row/column.
The code is all plpgsql, as are the few tests i've written so far. pgTAP is my unit testing framework for this process. So unit testing my company's (vast) database code is something I am just trying to figure out and get into my workflow, and it didn't feel like I had to fight too hard with it at this point, other than $subject$.
And even that isn't an issue with my hacky function in place, it just feels a little...dirty I guess? Was just wanting a gut check if there seemed to be an obviously better way to get the same results. If there is something built into Pg that does what you want, I'm not aware of it, but there are a number of extensions out there. You could check out that list to see. Otherwise, I'm not sure we can help you much. If that approach seems to be working, continue on and see where it takes you. Our unit tests are in Perl based on a module we created that inherits from Test::More. From there, we can exercise any code we need, many of which contains calls to DB functions, injecting known
values for all the use cases we can think of, and making sure we get back the expected results. That also means we can COPY data in for testing if required. It's pretty simplistic and straight-forward in some ways, but it works for us. HTH, Kevin . |