wtPLSQL is a white-box testing framework for Oracle database objects.
Demonstrations and examples assume successful connection to an Oracle database with wtPLSQL installed. wtPLSQL Installation instructions are available on the wtPLSQL Releases page.
Test results from assertions can be queried from a set of wtPLSQL tables. The examples here will use the default reporting package called WT_TEXT_REPORT. This package displays test results using DBMS_OUTPUT.
A login, or database session, is required to interact with the Oracle database. The SQL below will create a user that can run these examples. If you already have a database login, this is not necessary.
create user wtp_demo identified by wtp_demo
default tablespace users
quota unlimited on users
temporary tablespace temp;
grant create session to wtp_demo;
grant create type to wtp_demo;
grant create sequence to wtp_demo;
grant create table to wtp_demo;
grant create trigger to wtp_demo;
grant create view to wtp_demo;
grant create procedure to wtp_demo;
The simplest check for a wtPLSQL installation is to select the “version from dual”.
Run this:
select wtplsql.show_version from dual;
And get this:
SHOW_VERSION
-----------------------------------------------------------
1.1.0
This shows the wtPLSQL version as 1.1.0.
Another simple test is an ad-hoc assertion. This test requires DBMS_OUTPUT. The results of this test are not recorded.
Run this:
set serveroutput on size unlimited format word_wrapped
begin
wt_assert.eq(msg_in => 'Ad-Hoc Test'
,check_this_in => 1
,against_this_in => '1');
end;
/
And get this:
PASS Ad-Hoc Test. EQ - Expected "1" and got "1"
This indicates:
Note: This ad-hoc test also demonstrates implicit data type conversion.
A test runner package is central to running tests in wtPLSQL. The Test Runner page covers all the basics of creating a test runner package.
More interesting examples actually test database objects. Here are some examples.
wtPLSQL was built with the utPLSQL “ut_assert” API. These examples were created from the original utPLSQL 2.3 examples without modifying the “ut_assert” calls