Поскольку вы создаете новый экземпляр класса, он будет продолжать вызывать testMethod
. Вы можете следить за testMethod
и callFake вместо вызова метода. Вы также можете использовать beforeAll
вместо beforeEach
, чтобы компонент создавался только один раз для теста. Таким образом, метод будет вызываться только при создании компонента.
После того, как ваш компонент создан, вы можете вызывать любой метод, который вам нравится, и тестировать их по отдельности.
Автоматический статический анализ кода для Lua в целом - непростая задача. Однако для ограниченного набора практических задач это вполне выполнимо.
Быстрый поиск в Google для "lua lint" дает следующие два инструмента: lua-checker и Lua lint .
Однако вы можете использовать свой собственный инструмент для конкретных нужд.
Metalua - один из самых мощных инструментов для статического анализа кода Lua. Например, см. metalint , инструмент для анализа использования глобальных переменных.
Пожалуйста, не стесняйтесь размещать свой вопрос в списке рассылки Metalua . Там обычно очень отзывчивые люди.
For checking globals, see this lua-l posting. Checking locals is harder.
Вам необходимо найти синтаксический анализатор для lua ( должен быть доступен как открытый исходный код) и использовать его для синтаксического анализа скрипта в правильное дерево AST. Используйте это дерево и простой трекер видимости переменных, чтобы узнать, когда переменная определена или не определена.
Обычно правила области видимости просты:
Это даст вам представление о том, какие переменные видны внутри AST. Вы можете использовать эту информацию, и если вы также проверите узлы AST выражений (чтение / запись переменных), вы сможете узнать свою информацию.