Примерно так:
И получаем поддерево тестов в 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
)
Комментариев нет:
Отправить комментарий