On Tue, Oct 11, 2011 at 04:26:47PM +0200, Alban Hertroys wrote:
> On 11 October 2011 16:06, Eric Radman <ericsh...@eradman.com> wrote:
> > When writing unit tests it's sometimes useful to stub functions such
> > as the current date and time
> 
> You could create a table for such "constants" and read your
> current-time from that table.
> 
> Additionally, I would put such stub functions in a separate schema and
> create a test role with that schema as the top of their search_path.
> 
> That way, you could even override system function implementations (and
> other definitions) and only have them apply to the role you're using
> for unit testing.

> CREATE ROLE unit_tester;
> CREATE SCHEMA unit_tests AUTHORIZATION unit_tester;
> SET search_path TO unit_tests, my_schema, public;
> 
> CREATE TABLE unit_test_parameters (
>    current_time timestamp without time zone NOT NULL DEFAULT now()
> );

Excellent advice; this model works wonderfully. pg_catalog is normally
implicit, but you're right, system functions can be overridden by
setting the search path.


Eric Radman  |  http://eradman.com

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

Reply via email to