Closed
Description
When the actual or expected value has multiple consecutive spaces and the test fails, the message on the failures tab shows both values with all multi-spaces replaced by a single one.
(See test script below)
This is annoying because at first I couldn't figure out why a test was failing because the message showed identical strings for actual and expected.
Running the test from SQLcl showed that actual had an extra space which isn't visible in feedback from the plugin.
Test Suite to reproduce
create or replace package ut_spaces
authid definer
is
-- %suite(Test Plugin Output)
-- %context(Multiple spaces in values)
-- %test(Multiple spaces in actual)
procedure multi_space_actual;
-- %test(Multiple spaces in expect)
procedure multi_space_expect;
-- %endcontext
end ut_spaces;
/
create or replace package body ut_spaces
is
-- Multiple spaces in actual
procedure multi_space_actual
is
l_expect varchar2(100);
l_actual varchar2(100);
begin
l_expect := 'This line has spaces';
l_actual := 'This line has spaces';
ut.expect(l_actual).to_equal(l_expect);
end;
-- Multiple spaces in expect
procedure multi_space_expect
is
l_expect varchar2(100);
l_actual varchar2(100);
begin
l_expect := 'This line has spaces';
l_actual := 'This line has spaces';
ut.expect(l_actual).to_equal(l_expect);
end;
end ut_spaces;
/
In SQL Developer plugin
Running hese tests the plugin will report on the Failures tab:
Actual: 'This line has spaces' (varchar2) was expected to equal: 'This line has spaces' (varchar2)
at "ERO.UT_SPACES.MULTI_SPACE_ACTUAL", line 13 ut.expect(l_actual).to_equal(l_expect);
Note how all multiple spaces have been replaced by single spaces.
In SQLcl
Running the tests in SQLcl does show the multiple spaces
ERO@EVROCS>exec ut.run ('ut_spaces')
Test Plugin Output
Multiple spaces in values
Multiple spaces in actual [,481 sec] (FAILED - 1)
Multiple spaces in expect [,004 sec] (FAILED - 2)
Failures:
1) multi_space_actual
Actual: 'This line has spaces' (varchar2) was expected to equal: 'This line has spaces' (varchar2)
at "ERO.UT_SPACES.MULTI_SPACE_ACTUAL", line 13 ut.expect(l_actual).to_equal(l_expect);
2) multi_space_expect
Actual: 'This line has spaces' (varchar2) was expected to equal: 'This line has spaces' (varchar2)
at "ERO.UT_SPACES.MULTI_SPACE_EXPECT", line 26 ut.expect(l_actual).to_equal(l_expect);
Finished in ,487971 seconds
2 tests, 2 failed, 0 errored, 0 disabled, 0 warning(s)
PL/SQL procedure successfully completed.