Примерно так:
И получаем поддерево тестов в DUnit:
EVAL - тесты к оператору EVAL
T1
T2
T3
T4
T5
T6
T7
Ну и "паранойя":
И получаем поддерево тестов в DUnit:
+ - Тесты к оператору +
T1
T2
T3
T4
Надеюсь, что мысль понятна.
Есть функционал и есть "атомарные тесты" к нему.
Я думаю, что это "до меня" уже сотни людей придумали.
По-моему - прикольно. Главное, что всё почти уже реализовано.
Осталось только в DUnit зарегистрировать.
Т.е. в ЛЮБОМ приложении, которое включает в себя эти слова и DUnit - получаем отдельную ветку с тестами к словам.
Слово %Tests выглядит примерно так:
+Михаил Костицын
+Виктор Морозов
+Vsevolod Leonov
+Igor Belyh
+Николай Зверев
+Yaroslav Brovin
+Денис Мартьянов
+Марин Мирою
Можно пойти дальше:
operator EVAL // - оператор вычисляющий значение aWhat RIGHT IN aWhat aWhat |^ DO ; // EVAL EVAL %Tests 'тесты к оператору EVAL' ( // - это тесты к оператору EVAL : T1 EVAL 1 PrintStack ; // T1 : T2 EVAL '2' PrintStack ; // T2 : T3 VAR X X := 1 EVAL X PrintStack ; // T3 : T4 EVAL ( 123 456 ) PrintStack ; // T4 : T5 EVAL ( 123 456 + ) PrintStack ; // T5 : T6 EVAL ( 1 2 + ) == 3 ASSERTS ; // T6 : T7 EVAL ( 'A' 'B' Cat ) == 'AB' ASSERTS ; // T7 ) // EVAL %Tests
И получаем поддерево тестов в DUnit:
EVAL - тесты к оператору EVAL
T1
T2
T3
T4
T5
T6
T7
Ну и "паранойя":
+ %Tests 'Тесты к оператору +' ( : T1 1 2 + == 3 ASSERT ; // T1 : T2 1 -2 + == -1 ASSERT ; // T2 : T3 VAR A A := 1 VAR B B := 2 A B + == 3 ASSERT ; // T3 : T4 VAR A A := 1 VAR B B := 2 VAR C C := 3 A B + == C ASSERT ; // T4 ) // + %Tests
И получаем поддерево тестов в DUnit:
+ - Тесты к оператору +
T1
T2
T3
T4
ARRAY %Tests 'Тесты к оператору ARRAY' ( : T1 [ ] PrintStack ; // T1 : T2 [ 1 2 ] PrintStack ; // T2 : T3 [ 1 2 3 ] PrintStack ; // T3 : T4 [ 1 2 3 ] Revert PrintStack ; // T4 : T5 [ 1 2 2 3 1 3 5 6 7 ] RemoveDup PrintStack ; // T5 : T6 ARRAY VAR A A := [ 1 2 2 3 1 3 5 6 7 ] A RemoveDup PrintStack ; // T6 : T7 ARRAY VAR A A := [ 1 2 2 3 1 3 5 6 7 ] A RemoveDup ==> Print ; // T7 ) // ARRAY %Tests
Надеюсь, что мысль понятна.
Есть функционал и есть "атомарные тесты" к нему.
Я думаю, что это "до меня" уже сотни людей придумали.
По-моему - прикольно. Главное, что всё почти уже реализовано.
Осталось только в DUnit зарегистрировать.
Т.е. в ЛЮБОМ приложении, которое включает в себя эти слова и DUnit - получаем отдельную ветку с тестами к словам.
Слово %Tests выглядит примерно так:
VOID operator %Tests LEFT IN aWord RIGHT IN aDoc RIGHT IN aTests VAR l_Group DUnit:AddTestsGroup aWord aDoc >>> l_Group aCode MembersIterator ==> ( IN aTest l_Group DUnit:TestsGroup:AddTest aTest ) ; // %Tests
+Михаил Костицын
+Виктор Морозов
+Vsevolod Leonov
+Igor Belyh
+Николай Зверев
+Yaroslav Brovin
+Денис Мартьянов
+Марин Мирою
Можно пойти дальше:
'TControl' RTTIObject %Tests 'Тесты к классу TControl' ( : T1 OBJECT VAR l_Control 'TControl' RTTIClass 'Create' RTTIConstructor RTTIExecute [ nil { - Это Owner} ] >>> l_Control CONST cName 'MyControl' 'TControl' RTTIClass 'Name' RTTIProperty l_Control RTTISet [ cName { - Это значение Name } ] STRING VAR l_Name 'TControl' RTTIClass 'Name' RTTIProperty l_Control RTTIGet >>> l_Name l_Name == cName ASSERT ; // T1 )
Комментариев нет:
Отправить комментарий