Advertisement
isavchenko

Untitled

Dec 17th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. METHOD simple_configuration.
  2.  
  3. DATA: lo_currency_converter_double TYPE REF TO if_td_currency_converter,
  4. lo_expense_manager TYPE REF TO cl_td_expense_manager,
  5. lv_total_expense TYPE i.
  6.  
  7. *create test double object
  8. lo_currency_converter_double ?= cl_abap_testdouble=>create( ‘if_td_currency_converter’ ).
  9.  
  10. *configuration for stubbing method ‘convert’:
  11.  
  12. *step 1: set the desired returning value for the method call
  13. cl_abap_testdouble=>configure_call( lo_currency_converter_double )->returning( 80 ).
  14.  
  15. *step 2: specifying which method should get stubbed
  16. lo_currency_converter_double->convert(
  17. EXPORTING
  18. amount = 100
  19. source_currency = ‘USD’
  20. target_currency = ‘EUR’
  21. ).
  22.  
  23. *injecting the test double into the object being tested
  24. CREATE OBJECT lo_expense_manager EXPORTING currency_converter = lo_currency_converter_double.
  25.  
  26. *add one expense item
  27. lo_expense_manager->add_expense_item(
  28. EXPORTING
  29. description = ‘Line item 1’
  30. currency_code = ‘USD’
  31. amount = ‘100’
  32. ).
  33.  
  34. *actual method call
  35. lv_total_expense = lo_expense_manager->calculate_total_expense( currency_code = ‘EUR’ ).
  36.  
  37. *assertion
  38. cl_abap_unit_assert=>assert_equals( exp = 80 act = lv_total_expense ).
  39.  
  40. ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement