Рекламная замануха:
- Используешь OpenOffice Calc для перевода юз-кейсов на язык тест-кейсов, и мечтаешь автоматизировать это?
- Но как это сделать, ведь это невозможно!
- Теперь это возможно с новым макросом, который поможет любому, кто использует OpenOffice Calc для перевода юз-кейсов на язык тест-кейсов, и мечтает автоматизировать это!
Весь прикол в чем: при состалении шагов обычного тест-кейса есть повторяющиеся моменты типа “Отрыть приложение. Отрыть новый профиль и зарыть в нем банковский вклад”. Сделаем мелкий трюк и заставим Calc вставлять это в нужные ячейки по нажатию одного сочетания двух клавиш.
В итоге на листе Calc появляется уже готовое нечто:
| Шаг вперед | Ожидаемый результат | Реальный результат |
| Отрыть приложение. | Ok. | Passed |
| Отрыть новый профиль и зарыть в нем банковский вклад. | Ok. | Passed |
а курсор перебегает на нужное место, чтобы продолжить сочинение кейсов.
Макрос предрасположен в первом комментарии. Лицензия фрибээсдэшная. Ю ар фри ту бээсдэ тхиз код аз ю уищ.
Мы знаем, как вставить макрос в Calc.
Мы знаем, как назначить макросу сочетание клавиш.
Все это знают.







sub InsStandartWayToOpenPage
rem ———————————————————————-
rem define variables
dim document as object
dim dispatcher as object
rem ———————————————————————-
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)
rem Первая строка
rem Текст 1
rem ———————————————————————-
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = “StringName”
args1(0).Value = “Open new page.”
dispatcher.executeDispatch(document, “.uno:EnterString”, “”, 0, args1())
rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:JumpToNextUnprotected”, “”, 0, Array())
rem Ok 1
rem ———————————————————————-
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = “StringName”
args2(0).Value = “Ok.”
dispatcher.executeDispatch(document, “.uno:EnterString”, “”, 0, args2())
rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:JumpToNextUnprotected”, “”, 0, Array())
rem Passed 1
rem ———————————————————————-
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = “StringName”
args3(0).Value = “Passed”
dispatcher.executeDispatch(document, “.uno:EnterString”, “”, 0, args3())
rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:JumpToNextCell”, “”, 0, Array())
rem Возвращение 1
rem ———————————————————————-
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = “By”
args4(0).Value = 2
args4(1).Name = “Sel”
args4(1).Value = false
dispatcher.executeDispatch(document, “.uno:GoLeft”, “”, 0, args4())
rem Вторая строка
rem Текст 2
rem ———————————————————————-
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = “StringName”
args5(0).Value = “Create new Profile. “
dispatcher.executeDispatch(document, “.uno:EnterString”, “”, 0, args5())
rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:JumpToNextUnprotected”, “”, 0, Array())
rem Ок 2
rem ———————————————————————-
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = “StringName”
args6(0).Value = “Ok.”
dispatcher.executeDispatch(document, “.uno:EnterString”, “”, 0, args6())
rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:JumpToNextUnprotected”, “”, 0, Array())
rem Passed 2
rem ———————————————————————-
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = “StringName”
args7(0).Value = “Passed”
dispatcher.executeDispatch(document, “.uno:EnterString”, “”, 0, args7())
rem ———————————————————————-
dispatcher.executeDispatch(document, “.uno:JumpToNextCell”, “”, 0, Array())
rem Полное Возвращение
rem ———————————————————————-
dim args8(1) as new com.sun.star.beans.PropertyValue
args8(0).Name = “By”
args8(0).Value = 2
args8(1).Name = “Sel”
args8(1).Value = false
dispatcher.executeDispatch(document, “.uno:GoLeft”, “”, 0, args8())
end sub