utPLSQL / utPLSQL-SQLDeveloper

Extension for running unit tests straight from SQL Developer
Apache License 2.0
63 stars 17 forks source link

Update code templates using AAA #145

Closed PhilippSalvisberg closed 2 years ago

PhilippSalvisberg commented 2 years ago

The current code template for the PL/SQL package body looks like this (test_ is the default prefix):

CREATE OR REPLACE PACKAGE BODY test_[package_name] IS

   --
   -- test
   --
   PROCEDURE [procedure_name] IS
      l_actual   INTEGER := 0;
      l_expected INTEGER := 1;
   BEGIN
      -- populate actual
      -- ...

      -- populate expected
      -- ...

      -- assert
      ut.expect(l_actual).to_equal(l_expected);
   END [procedure_name];

END test_[package_name];
/

The body is grouped into three steps. Firstly, populate actual. Secondly, populate expected. Thirdly, assert.

Instead of these three steps the Arrange-Act-Assert pattern should be used. It's popular in Unit testing.

The new template should look like this:

create or replace package body test_[package_name] is

   --
   -- test
   --
   procedure [procedure_name] is
      l_actual   integer := 0;
      l_expected integer := 1;
   begin
      -- arrange
      -- ...

      -- act
      -- ...

      -- assert
      ut.expect(l_actual).to_equal(l_expected);
   end [procedure_name];

end test_[package_name];
/

The other template should be changed accordingly.