<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ABAP Unit - Testing internal tables in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918580#M1691297</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alex,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP Unit does not guarantee that the FOR TESTING methods are executed in any particular order. Even though you have defined test_uploadfile first, and test_changefile second, you cannot assume that they will be executed in that sequence. It's possible that test_changefile is executed first, and test_uploadfile is executed second.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At any rate, you shouldn't be making your test_changefile test dependant on the result of you rest_uploadfile test. The changefile logic could be 100% correct, but it would fail if there was a flaw in the uploadfile logic. This dependency is counter to the purpose of a Unit Test, which is to test each unit of functionality independant of the others.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps. To be honest, your test methods as they are written above don'e make much sense to me (what subroutine is test_uploadfile testing?) If you'd like some further advice, let me know!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Jul 2012 14:42:35 GMT</pubDate>
    <dc:creator>alex_campbell</dc:creator>
    <dc:date>2012-07-19T14:42:35Z</dc:date>
    <item>
      <title>ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918570#M1691287</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;I am new in ABAP Unit. I want to create an ABAP Unit Test Class for testing subroutines.&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;One of the subroutines responsibles for uploading a file into an internal table. &lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;Most of the s&lt;SPAN style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt;ubroutines work with internal tables (Inputs: internal tables, Outputs: internal tables).&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt; I have read a lot posts about it, but I couldn't find any example about testing internal tables.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt;I have created a local test class and test methods:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;**********************************************************************&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt;**********************************************************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S52"&gt;class &lt;/SPAN&gt;&lt;STRONG&gt;test_class &lt;SPAN class="L0S52"&gt;definition&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;inheriting &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;from &lt;/SPAN&gt;cl_aunit_assert&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;for &lt;/SPAN&gt;testing&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"#AU Risk_Level Harmless&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S31"&gt;"#AU Duration Short&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;private &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;section&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;data&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;: &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lt_upload_test&amp;nbsp; &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;standard &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;table &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;of &lt;/SPAN&gt;ty_betolto&lt;SPAN class="L0S55"&gt;,&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;"expected table&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lt_upload&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;standard &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;table &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;of &lt;/SPAN&gt;ty_betolto&lt;SPAN class="L0S55"&gt;,&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;"actual table, filled by test_uploadfile test method&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld_filename&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;string.&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;"it contains filename&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;methods &lt;/SPAN&gt;test_uploadfile&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;for &lt;/SPAN&gt;testing&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;"upload input&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;methods &lt;/SPAN&gt;test_changefile&amp;nbsp; &lt;SPAN class="L0S52"&gt;for &lt;/SPAN&gt;testing&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;"upload expected file + calling my subroutine + compare actual and expected tables&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S52"&gt;endclass&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;**********************************************************************&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;**********************************************************************&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;**********************************************************************&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;class &lt;STRONG&gt;test_class implementation&lt;/STRONG&gt;.&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp; method &lt;STRONG&gt;test_uploadfile&lt;/STRONG&gt;.&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld_filename = 'C:\upload.txt'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp; call method cl_gui_frontend_services=&amp;gt;gui_upload&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exporting&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ld_filename&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filetype&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'ASC'&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; has_field_separator&amp;nbsp;&amp;nbsp; = 'X'&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; changing&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data_tab&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = lt_upload.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_subrc(&amp;nbsp; exp = 0&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; act = syst-subrc&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = 'Error upload file!').&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000; font-size: 12px; background-color: #ffffff;"&gt;" this time I checked number of records, &lt;STRONG&gt;lt_upload &lt;/STRONG&gt;= 11576 records&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&amp;nbsp; endmethod.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S52"&gt;&amp;nbsp; method &lt;/SPAN&gt;&lt;STRONG style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt;test_changefile&lt;/STRONG&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld_filename = 'C:\upload_test.txt'.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp; call method cl_gui_frontend_services=&amp;gt;gui_upload&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exporting&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ld_filename&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filetype&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'ASC'&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; has_field_separator = 'X'&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; changing&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data_tab&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = lt_upload_test.&amp;nbsp; &lt;SPAN style="color: #ff0000; font-size: 12px; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " this time I checked number of records,&lt;STRONG&gt; lt_upload_test&lt;/STRONG&gt; = 11576 records&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp; perform changefile changing lt_upload&lt;/SPAN&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000; font-size: 12px; background-color: #ffffff;"&gt;" this time I checked number of records, &lt;STRONG&gt;lt_upload&lt;/STRONG&gt; = 0 record&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp; assert_equals(&amp;nbsp; act = lt_upload&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exp = lt_upload_test&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt; &lt;SPAN class="L0S31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = 'Error changing file').&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;" failed.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S31"&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;endmethod&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;&lt;SPAN class="L0S55"&gt;endclass. &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;**********************************************************************&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;I hope anyone can help me. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;Thanks for your help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;Best Regards, Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 08:15:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918570#M1691287</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T08:15:09Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918571#M1691288</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alex,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You want to check whether internal table contents of lt_upload_test and lt_upload using the subroutine changefile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Am i right?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The reason for lt_upload is initial(zero records) is that you haven't passed the internal table lt_upload to the method test_changefile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope you will be calling the method &lt;STRONG&gt;test_uploadfile &lt;/STRONG&gt;first. This will keep the entire data in the internal table lt_upload. But this will not be visible in the &lt;STRONG&gt;test_changefile &lt;/STRONG&gt;method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As a solution, you need to return the internal table lt_upload from the method &lt;STRONG&gt;test_uploadfile &lt;/STRONG&gt;and pass the internal table lt_upload to the method &lt;STRONG&gt;test_changefile&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;~Niranjan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 09:15:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918571#M1691288</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T09:15:55Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918572#M1691289</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN style="color: #333333; font-size: 11.818181991577148px; background-color: #ffffff;"&gt;Niranjan&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, I have to provide an output from an input. Simplified exapmle:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Input:&lt;/P&gt;&lt;P&gt;Record&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Material&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Price&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54345&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 34453&lt;/P&gt;&lt;P&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Expected Output (It comes from an old processing program):&lt;/P&gt;&lt;P&gt;Record&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Material&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Price&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54345&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 325&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 290&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 34453&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&lt;/P&gt;&lt;P&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 290&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My Output (It comes from my new processing program):&lt;/P&gt;&lt;P&gt;Record&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Material&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Price&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54345&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 345&amp;nbsp; " Should be: 325&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp; " Should be: 290&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #339966;"&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 34453&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&amp;nbsp; " Correct&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp; " Should be: 290&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Process:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;1. I upload an input (both programs got the same input)&lt;/P&gt;&lt;P&gt;2. I upload an expected output (it cames from old processing program)&lt;/P&gt;&lt;P&gt;3. I call my subroutine with the input (it changes the input), and it provides an output, that I compare with the expected output. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 11.818181991577148px; background-color: #ffffff;"&gt;"I hope you will be calling the method &lt;/SPAN&gt;&lt;STRONG style="font-size: 11.818181991577148px; background-color: #ffffff; color: #333333;"&gt;test_uploadfile &lt;/STRONG&gt;&lt;SPAN style="color: #333333; font-size: 11.818181991577148px; background-color: #ffffff;"&gt;first. This will keep the entire data in the internal table lt_upload. But this will not be visible in the&lt;/SPAN&gt;&lt;STRONG style="font-size: 11.818181991577148px; background-color: #ffffff; color: #333333;"&gt;test_changefile &lt;/STRONG&gt;&lt;SPAN style="color: #333333; font-size: 11.818181991577148px; background-color: #ffffff;"&gt;method."&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #333333; font-size: 11.818181991577148px;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;How does the ABAP Unit calling methods, if I push Ctrl+Shift+F10 (what order)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It this the only way to test an file interface based program?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards, Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 09:46:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918572#M1691289</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T09:46:02Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918573#M1691290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi guys,&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt; But this will not be visible in the &lt;STRONG&gt;test_changefile &lt;/STRONG&gt;method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 12px;"&gt;lt_upload is a private attribute of the local class, and if it is filled in the method &lt;SPAN style="font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;test_uploadfile &lt;/STRONG&gt;&lt;SPAN style="color: #333333; font-size: 12px;"&gt;then it is visible in &lt;STRONG&gt;test_changefile, &lt;/STRONG&gt;you don't need to pass it to this method&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 13:28:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918573#M1691290</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T13:28:26Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918574#M1691291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply. I think so, too. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I have no idea, why doesn't&amp;nbsp; lt_upload visible in&amp;nbsp; test_changefile. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Like I wrote before &lt;STRONG&gt;test_uploadfile&lt;/STRONG&gt; shows gui_upload uploaded successfully the input file (11576 records), but&amp;nbsp; &lt;STRONG&gt;test_changefile&lt;/STRONG&gt; show 0 record in the lt_upload internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have any idea?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank a lot for you time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards, Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 13:42:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918574#M1691291</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T13:42:55Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918575#M1691292</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You should first call test_upload and then call test_changefile method otherwise yor internal table will still be initial&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 13:55:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918575#M1691292</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T13:55:38Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918576#M1691293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have created these test methods with for testing attributives:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 11.818181991577148px; background-color: #ffffff;"&gt;method &lt;/SPAN&gt;&lt;STRONG style="font-size: 11.818181991577148px; color: #333333;"&gt;test_uploadfile&lt;/STRONG&gt;&lt;SPAN style="color: #333333; font-size: 11.818181991577148px; background-color: #ffffff;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52" style="font-size: 11.818181991577148px; color: #333333;"&gt;method &lt;/SPAN&gt;&lt;STRONG style="font-size: 12px; background-color: #ffffff; color: #333333;"&gt;test_changefile&lt;/STRONG&gt;&lt;SPAN class="L0S55" style="font-size: 11.818181991577148px; color: #333333;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Should I call them somewhere? Don't ABAP Unit do it for me? Isn't enough to press Ctrl+Shift+F10?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for you reply!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 14:05:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918576#M1691293</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T14:05:25Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918577#M1691294</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can implement your local class in any executable program,FG, module pools and etc, from there you create an instance of the class but since, your methods are private, you might need to define a public method from which you call your methods, or define your methods as public ones.&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;DATA:&amp;nbsp; go_test type ref to &lt;STRONG style="font-size: 12px; color: #333333;"&gt;test_class &lt;SPAN class="L0S52" style="font-weight: inherit; font-style: inherit; font-family: inherit;"&gt;definition&lt;/SPAN&gt;&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create object go_test.&lt;/P&gt;&lt;P&gt;"// If you redefine your methods to be public then,&lt;/P&gt;&lt;P&gt;go_test-&amp;gt;test_uploadfile( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;go_test-&amp;gt;test_changefile( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"// i would change the lt_upload to MT_upload, and make it public.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S31" style="font-size: 12px; color: #333333;"&gt;perform changefile changing go_test-&amp;gt;lt_upload&lt;/SPAN&gt;&lt;SPAN style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt;.....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 12px; background-color: #ffffff;"&gt;hope this helps..&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 14:27:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918577#M1691294</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T14:27:48Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918578#M1691295</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kairat,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I believe you are mistaken about what the original poster is trying to do. He is trying to create ABAP Unit test classes, which are called by the ABAP Unit test runtime. There is no need to call the FOR TESTING methods directly.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 14:33:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918578#M1691295</guid>
      <dc:creator>alex_campbell</dc:creator>
      <dc:date>2012-07-19T14:33:35Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918579#M1691296</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, you are right. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have an ABAP program with subroutines. In the same source code I have implemented my Test Class as well with these test methods.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I have problems with internal table content, like I wrote it above.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have no idea what's wrong with these methods. Any idea?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks guys your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 14:39:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918579#M1691296</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T14:39:33Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918580#M1691297</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alex,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP Unit does not guarantee that the FOR TESTING methods are executed in any particular order. Even though you have defined test_uploadfile first, and test_changefile second, you cannot assume that they will be executed in that sequence. It's possible that test_changefile is executed first, and test_uploadfile is executed second.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At any rate, you shouldn't be making your test_changefile test dependant on the result of you rest_uploadfile test. The changefile logic could be 100% correct, but it would fail if there was a flaw in the uploadfile logic. This dependency is counter to the purpose of a Unit Test, which is to test each unit of functionality independant of the others.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps. To be honest, your test methods as they are written above don'e make much sense to me (what subroutine is test_uploadfile testing?) If you'd like some further advice, let me know!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 14:42:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918580#M1691297</guid>
      <dc:creator>alex_campbell</dc:creator>
      <dc:date>2012-07-19T14:42:35Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918581#M1691298</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes you are right, you can call it the other way as well, however, even if you write the code as I've written, on productive system the code is ignored.&lt;/P&gt;&lt;P&gt;and by the way why do&amp;nbsp; you have a perform in a method of test class?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if you want to run them in a required order you can do it as I've proposed.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 14:46:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918581#M1691298</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-19T14:46:48Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918582#M1691299</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Note: I don't believe its the case that the test code is ignored in a productive system. I believe the code is &lt;EM&gt;not compiled&lt;/EM&gt; in a productive system. I don't know for certain, but I would assume that as a result, if you include calls to test classes in non-test code, the non-test code will fail to compile in production as well. Does anyone know for certain if that's the case?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 15:08:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918582#M1691299</guid>
      <dc:creator>alex_campbell</dc:creator>
      <dc:date>2012-07-19T15:08:46Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918583#M1691300</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I took a closer look at your test methods. How are you passing the filename to perform changefile? Unless you're using a global constant or an initialized global variable, it may not be set when the test methods execute.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, I think you should be able to set a breakpoint in the test methods, and debug through them when you execute the unit tests.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 15:25:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918583#M1691300</guid>
      <dc:creator>alex_campbell</dc:creator>
      <dc:date>2012-07-19T15:25:51Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918584#M1691301</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alex,&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;methods &lt;/SPAN&gt;test_uploadfile&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;for &lt;/SPAN&gt;testing&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;"upload input&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;this is not a test method. It is a setup method to create your fixture.&lt;/P&gt;&lt;P&gt;I have refactored your test:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;CLASS test_class &lt;SPAN class="L0S52"&gt;DEFINITION &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;INHERITING &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;FROM &lt;/SPAN&gt;cl_aunit_assert&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FOR &lt;/SPAN&gt;TESTING&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"#AU Risk_Level Harmless&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31" style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "#AU Duration Short&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;PRIVATE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;SECTION&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPES &lt;/SPAN&gt;tt_data &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;STANDARD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TABLE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;ty_betolto&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHODS &lt;/SPAN&gt;get_file_date&amp;nbsp; &lt;SPAN class="L0S31"&gt;" not a test method&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IMPORTING &lt;/SPAN&gt;iv_fname &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;c&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;ct_data &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHODS &lt;/SPAN&gt;test_changefile &lt;SPAN class="L0S52"&gt;FOR &lt;/SPAN&gt;TESTING&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt; &lt;SPAN class="L0S52"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt; &lt;SPAN class="L0S52"&gt;CLASS &lt;/SPAN&gt;test_class &lt;SPAN class="L0S52"&gt;IMPLEMENTATION&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;get_file_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;DATA &lt;/SPAN&gt;ld_filename &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;string&lt;SPAN class="L0S55"&gt;.&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"it contains filename&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld_filename &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;iv_fname&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CLEAR &lt;/SPAN&gt;ct_data[]&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;cl_gui_frontend_services&lt;SPAN class="L0S70"&gt;=&amp;gt;&lt;/SPAN&gt;gui_upload&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S52" style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;ld_filename&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filetype&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'ASC'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; has_field_separator &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'X'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S52" style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CHANGING&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data_tab&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;ct_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;test_changefile&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;DATA&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;: &lt;/SPAN&gt;lt_upload_test&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;,&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"expected table&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lt_upload&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"actual table&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN class="L0S31" style="font-family: courier new,courier; font-size: 8pt;"&gt; *&amp;nbsp;&amp;nbsp; Expected result&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_file_data&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXPORTING &lt;/SPAN&gt;iv_fname &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'C:\upload_test.txt'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;ct_data &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;lt_upload_test &lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31" style="font-family: courier new,courier; font-size: 8pt;"&gt; *&amp;nbsp;&amp;nbsp; Fixture&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_file_data&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXPORTING &lt;/SPAN&gt;iv_fname &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'C:\upload.txt'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;ct_data &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;lt_upload &lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31" style="font-family: courier new,courier; font-size: 8pt;"&gt; *&amp;nbsp;&amp;nbsp; Test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;PERFORM &lt;/SPAN&gt;changefile &lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;lt_upload&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31" style="font-family: courier new,courier; font-size: 8pt;"&gt; *&amp;nbsp;&amp;nbsp; Check&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_equals&lt;SPAN class="L0S55"&gt;(&amp;nbsp; &lt;/SPAN&gt;act &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;lt_upload&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;exp &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;lt_upload_test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'Error changing file'&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN class="L0S52" style="font-family: courier new,courier; font-size: 8pt;"&gt; ENDCLASS&lt;/SPAN&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This should work but the next problem is that you rely on data on the file system (drive C:\) for your test.&lt;/P&gt;&lt;P&gt;I would maintain the data directly, e.g (assuming fields named MATERIAL and PRICE for type TY_BETOLTO)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN class="L0S52" style="font-family: courier new,courier; font-size: 8pt;"&gt;CLASS test_class &lt;SPAN class="L0S52"&gt;DEFINITION &lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;INHERITING &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;FROM &lt;/SPAN&gt;cl_aunit_assert&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FOR &lt;/SPAN&gt;TESTING&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"#AU Risk_Level Harmless&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S31"&gt;"#AU Duration Short&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;PRIVATE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;SECTION&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPES &lt;/SPAN&gt;tt_data &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;STANDARD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TABLE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;ty_betolto&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHODS &lt;/SPAN&gt;expected_result &lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;ct_data &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHODS &lt;/SPAN&gt;fixture &lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;ct_data &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHODS &lt;/SPAN&gt;test_changefile &lt;SPAN class="L0S52"&gt;FOR &lt;/SPAN&gt;TESTING&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S52"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;SPAN class="L0S52"&gt;CLASS &lt;/SPAN&gt;test_class &lt;SPAN class="L0S52"&gt;IMPLEMENTATION&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;DEFINE &lt;/SPAN&gt;add_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CLEAR &lt;/SPAN&gt;ls_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ls_data&lt;SPAN class="L0S70"&gt;-&lt;/SPAN&gt;material &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&amp;amp;1&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ls_data&lt;SPAN class="L0S70"&gt;-&lt;/SPAN&gt;price &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&amp;amp;2&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;APPEND &lt;/SPAN&gt;ls_data &lt;SPAN class="L0S52"&gt;TO &lt;/SPAN&gt;ct_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;END-OF-DEFINITION&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;expected_result&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;DATA &lt;/SPAN&gt;ls_data &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;LINE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CLEAR &lt;/SPAN&gt;ct_data[]&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*Record&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Material&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Price&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54345&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 325&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 290&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 34453&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 290&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add_data&lt;SPAN class="L0S55"&gt;: &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'54345' &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'325'&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'43322' &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'290'&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'34453' &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'120'&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'43322' &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'290'&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;fixture&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;DATA &lt;/SPAN&gt;ls_data &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;LINE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CLEAR &lt;/SPAN&gt;ct_data[]&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*Record&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Material&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Price&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54345&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 34453&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43322&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add_data&lt;SPAN class="L0S55"&gt;: &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'54345' &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;''&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'43322' &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;''&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'34453' &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;''&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'43322' &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;''&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;test_changefile&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;DATA&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;: &lt;/SPAN&gt;lt_upload_test&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;,&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"expected table&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lt_upload&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;tt_data&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"actual table&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expected_result&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;ct_data &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;lt_upload_test &lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fixture&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;ct_data &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;lt_upload &lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*&amp;nbsp;&amp;nbsp; Test&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;PERFORM &lt;/SPAN&gt;changefile &lt;SPAN class="L0S52"&gt;CHANGING &lt;/SPAN&gt;lt_upload&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;*&amp;nbsp;&amp;nbsp; Check&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_equals&lt;SPAN class="L0S55"&gt;(&amp;nbsp; &lt;/SPAN&gt;act &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;lt_upload&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;exp &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;lt_upload_test&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S33"&gt;'Error changing file'&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;SPAN class="L0S52"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;JNN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 21:50:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918584#M1691301</guid>
      <dc:creator>nomssi</dc:creator>
      <dc:date>2012-07-19T21:50:17Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918585#M1691302</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alex,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your time. This is my fault, I didn't want write full source code here, and I only wanted to know how can I compare internal tables (which come from uploded text files).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My program logic is like this (these steps subroutines):&lt;/P&gt;&lt;P&gt;1. upload text file (about 13000 records)&lt;/P&gt;&lt;P&gt;2. checking text file (if there is some mistake, it corrects and deletes some of them by conditions)&lt;/P&gt;&lt;P&gt;3. pricing (it gives them price by business logic)&lt;/P&gt;&lt;P&gt;4. assigning (it assigns a value for all records)&lt;/P&gt;&lt;P&gt;5. make a batch input&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I have 5 subroutines. In the same source code I implemented a Test Class. In the test methods I am calling the subroutines and comparing the result and the expected records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I understand I should make them independent, but they are working with internal tables, and passing them between each other.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You are right, these methods don't make any sense, I only wrote it, to ask questions about it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Jul 2012 07:46:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918585#M1691302</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-20T07:46:26Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918586#M1691303</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know what happened yesterday, but I couldn't set any breakpoints in the test methods. Today I could set BP and it was interesting, like you said before test_changefile runs before test_uploadfile. So it was the problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But still I don't know how I could make them independent, but I will work on it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Jul 2012 07:53:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918586#M1691303</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-20T07:53:24Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918587#M1691304</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply. The only problem with your second solution, I have about 13000 records in my input file, so it would be a nightmare to hardcode it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You are right it's not a test method. I took your advice, and made a CLASS-METHOD class_setup and CLASS-DATA internal tables, and uploaded all text files in class_setup method. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I have all text files in internal tables:&lt;/P&gt;&lt;P&gt;- input&lt;/P&gt;&lt;P&gt;- expected_output_2 (testing subroutine 2)&lt;/P&gt;&lt;P&gt;- expected_output_3 (testing subroutine 3)&lt;/P&gt;&lt;P&gt;- expected_output_4 (testing subroutine 4)&lt;/P&gt;&lt;P&gt;- expected_output_5 (testing subroutine 5)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But it's still problem, my subroutines are depend from each other.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Jul 2012 08:28:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918587#M1691304</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-20T08:28:11Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918588#M1691305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alex,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you need 4 test methods, one for each subroutine. The layout of each routine should like in my&amp;nbsp; proposal: &lt;/P&gt;&lt;UL&gt;&lt;LI&gt; fill the expected result table, if all you data are in files, you can use my first proposal with different file name for each test.&lt;/LI&gt;&lt;LI&gt; fill the input table, &lt;/LI&gt;&lt;LI&gt; call the SUT (subroutine(s) under test), &lt;/LI&gt;&lt;LI&gt; check the result with assert.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The methods cannot depend on each other. They can depend only other non-test method in the unit test. &lt;/P&gt;&lt;P&gt;Since you use the CLASS_SETUP routine to update all files at once, you HAVE to use a fresh copy of your INPUT_TABLE in each test.&lt;/P&gt;&lt;P&gt;You can also be lazy and use the SETUP routine instead, it will be called before each test routine.&lt;/P&gt;&lt;P&gt;If your subroutines depend on each other, call them all in the right sequence before checking the results, e.g.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;fixture(&amp;nbsp; CHANGING ct_data = input_table ). " Fill input table &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;* call the SUT&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;PERFORM subroutine2 CHANGING input_table.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;PERFORM subroutine3 CHANGING input_table. " depends on subroutine 2&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;PERFORM subroutine4 CHANGING input_table. " depends on subroutine 3&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;PERFORM subroutine5 CHANGING input_table. " now: the SUT, depends on subroutine 4&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;* Load the expected results&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;expected_result( CHANGING ct_data = exp_table ).&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;* Check&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: courier new,courier;"&gt;assert( ... ).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this helps,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;JNN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Jul 2012 09:41:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918588#M1691305</guid>
      <dc:creator>nomssi</dc:creator>
      <dc:date>2012-07-20T09:41:45Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Unit - Testing internal tables</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918589#M1691306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I got an idea (maybe one of you metioned above):&lt;/P&gt;&lt;P&gt;I have 4 subroutine to test. So I create 4 test classes.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;class testclass_1.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;method setup.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "&amp;nbsp; upload input text file&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "&amp;nbsp; upload expected file&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;method test_sub1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_equals().&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;endclass.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;class testclass_2:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;method setup.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "&amp;nbsp; upload input text file&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "&amp;nbsp; upload expected file_2&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;method test_sub2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_equals().&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;endclass.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;class testclass_3:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;method setup.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "&amp;nbsp; upload input text file&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "&amp;nbsp; upload expected file_3&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;method test_sub3.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub3.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_equals().&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;endclass.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;class testclass_4:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;method setup.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "&amp;nbsp; upload input text file&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "&amp;nbsp; upload expected file_4&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;method test_sub4.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub3.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform sub4.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_equals().&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;endclass.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What do you think? Thanks guys, I am really appreciate your help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Jul 2012 09:56:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-unit-testing-internal-tables/m-p/8918589#M1691306</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-07-20T09:56:41Z</dc:date>
    </item>
  </channel>
</rss>

