Unit testing is a process in software development that makes it possible to find errors in various components or modules in an application. In databases, those components are stored procedures, functions, triggers, and so on. A view definition, or even the SQL code of queries that applications use, can also be the subject of unit testing.
The idea behind unit testing is that for every module of a software system, such as a class or a function, there is a set of tests that invokes that module with a certain input data and checks whether the outcome of the invocation matches the expected result.
If the function being tested does not have any side-effects, meaning that it does not change any data or state of a component outside of the function, it is called a pure function. Mathematical functions are pure functions. In a database, IMMUTABLE functions are usually pure...