SAPфорум.RU
https://www.sapboard.ru/forum/

Unit test для локальных классов
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=99616
Страница 1 из 1

Автор:  Friday [ Вт, июн 22 2021, 08:10 ]
Заголовок сообщения:  Unit test для локальных классов

Всем привет

Начал изучать unit test
Переделал старую программу под MVC

Основной функционал в модели - в приватных методах
Как вообще структура должна быть?
у меня сейчас
объявление класса lcl_model
реализация
объявление класса lcl_view
реализация
объявление класса lcl_controller
реализация
объявление класса tester
реализация

CLASS lcl_model DEFINITION LOCAL FRIENDS tester.

ругается на строку
CLASS lcl_model DEFINITION LOCAL FRIENDS tester.
"Определение класса PUBLIC возможно только внутри глобального CLASSPOOL"

Как тестировать приватные методы или защищенные?

Автор:  Sam Stone [ Вт, июн 22 2021, 08:34 ]
Заголовок сообщения:  Re: Unit test для локальных классов  Тема решена

Привет.

Надо local убрать. У меня в таком варианте ошибок нет
Code:
CLASS tcl DEFINITION for TESTING.

endclass.

CLASS lcl DEFINITION FRIENDS tcl.
  PUBLIC SECTION.
  METHODS m1.
ENDCLASS.

CLASS lcl IMPLEMENTATION.
  METHOD m1.

  ENDMETHOD.
ENDCLASS.


А по структуре - ее определяет исключительно разработчик. Всё зависит от сложности логики, необходимости дальнейшего расширения и тд. YAGNI, KISS, etc :D

Автор:  Friday [ Вт, июн 22 2021, 10:38 ]
Заголовок сообщения:  Re: Unit test для локальных классов

Sam Stone написал(а):
Привет.

Надо local убрать. У меня в таком варианте ошибок нет
Code:
CLASS tcl DEFINITION for TESTING.

endclass.

CLASS lcl DEFINITION FRIENDS tcl.
  PUBLIC SECTION.
  METHODS m1.
ENDCLASS.

CLASS lcl IMPLEMENTATION.
  METHOD m1.

  ENDMETHOD.
ENDCLASS.


А по структуре - ее определяет исключительно разработчик. Всё зависит от сложности логики, необходимости дальнейшего расширения и тд. YAGNI, KISS, etc :D



Спасибо. получилось в таком порядке
объявление класса tester
объявление классов с дружественным tester
реализация tester - для теста надо создать lcm_model - поэтому пришлось его в конец перенести.

Спасибо

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/