Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Wrong failure message when comparing unordered data #764

@jgebal

Description

@jgebal

Example:

create or replace package tst as
  --%suite
  
  --%test
  procedure t;
end;
/

create or replace package body tst as
  procedure t is
    l_expected        sys_refcursor;
    l_actual          sys_refcursor;
  begin
    --Act
    open l_expected for
      select 'Table' as name from dual
      union all
      select 'Desk' as name from dual
      union all
      select 'Table' as name from dual;
      
    open l_actual for
      select 'Desk' as name from dual
      union all
      select 'Table' as name from dual;
     
    --Assert
    ut.expect( l_actual ).to_equal( l_expected ).unordered();
  end;
end;
/

exec ut.run('tst');

Gives:


Package TST compiled


Package Body TST compiled

tst
  t [.022 sec] (FAILED - 1)
 
Failures:
 
  1) t
      Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 3 ]
      Diff:
      Rows: [ 1 differences ]
        All rows are different as the columns are not matching.
      at "UT3_DEMO.TST.T", line 20 ut.expect( l_actual ).to_equal( l_expected ).unordered();
      
       
Finished in .023709 seconds
1 tests, 1 failed, 0 errored, 0 disabled, 0 warning(s)
 


PL/SQL procedure successfully completed.

The message should be:

  1) t
      Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 3 ]
      Diff:
      Rows: [ 1 differences ]
      Missing:  <ROW><NAME>Table</NAME></ROW>
      at "UT3_DEMO.TST.T", line 20 ut.expect( l_actual ).to_equal( l_expected ).unordered();

Using utplsql v 3.1.2 & Oracle 18

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions