Skip to content

v1.1.0

Latest

Choose a tag to compare

@greltel greltel released this 27 Sep 12:15
· 68 commits to main since this release
9d69c74

[1.1.0] - 2026-09-27

Added

  • Every recorded call carries the method of the code under test that made it and the
    line within that method, read from the XCO call stack while the double answers
    (from ZCL_ORDER_SERVICE=>ZIF_ORDER_SERVICE~CANCEL, line 6 of the method). A failure
    at the call - an unmatched or unwanted call, a dummy that is called - has it as the fact
    Called from:; the matching and closest calls of a spy or mock failure show it after
    their arguments.

Changed

  • Breaking: every step of a spy check checks on its own. was_called( ) fails the test
    at once unless the method was called at least once, each with( ) fails unless a recorded
    call has the arguments named so far, and times( n ) needs n of 1 or more - times( 0 )
    is rejected, was_not_called( ) is the check for a method that must not be called. Before,
    a check without times( ) checked nothing. New problems no_call_recorded (027/124) and
    no_matching_call (028/125); negative_expected_calls (016/113) is gone, times( ) of a
    spy and of a mock both raise invalid_expected_calls.
  • A failure reported to ABAP Unit has what went wrong as its message and the fix and the
    facts as its detail, so the failure list stays readable and the rest shows under it
    (Analysis in the SAP GUI, Details in ADT). zcx_atk->get_text( ) is unchanged.
  • The facts about a value that does not fit name the type of the value and what the
    parameter would hold instead as labeled sentences (The value has the type:,
    Instead, the parameter would hold:), so long type names are no longer cut at the
    50 characters of a message placeholder.
  • The failure of was_called( ) on a method that was never called names the other methods
    the double received calls for, with their counts, or says that the double received no
    call at all. The arguments of a call of a method without inputs read none, not any.
  • 168 unit tests.

Fixed

  • A with( ) condition on an optional parameter the caller left out is never met, not even
    with an initial value: the method may have seen its DEFAULT, which the double cannot know.
  • A call goes to an expectation that still waits for a call before a more specific one that got
    all its calls, as documented; the failure of an unmet expectation lists the calls that
    expectation answered, not the calls a twin expectation took.
  • Parameters typed with the generic c, n, p or x accept values of any length; before,
    CREATE DATA silently gave them the standard length and every longer value was refused.
  • A table value in another row order than the sorted table type of the parameter is accepted.
  • A condition on a generic parameter also matches when the value of the call fits the type of
    the condition the other way round ('4711' against a numeric text).
  • A method named with the prefix of the doubled interface itself ('ZIF_ORDERS~GET_ORDER'),
    or by an alias declared in the interface, is found.
  • A failure to read the call stack no longer fails the call; the origin is left out.
  • An enumerated value is only compared with a value of its own type.
  • Fix texts for with( ), sets( ) and returns( ) name the right alternative, and an
    interface without instance methods lists none instead of nothing.
  • The unit tests of ZCL_ATK no longer depend on the demo package.