當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
2017-12-09 JavaScript实现ZLOGO子集: 测试用例
生活随笔
收集整理的這篇文章主要介紹了
2017-12-09 JavaScript实现ZLOGO子集: 测试用例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
續前文JavaScript實現ZLOGO子集: 前進+轉向. 在添加新功能之前, 先添加測試用例, 以應對日益復雜的代碼.
選擇使用QUnit編寫運行測試用例. 暫時對比較復雜和I/O無關的部分進行測試.
一是代碼分析部分: Antlr通過生成的分析器和定制的監聽器, 對原始代碼進行分析和生成指令序列的部分. 下面是對循環進行測試的一個用例:
QUnit.test( "分析_循環_前進1", function( assert ) {assert.deepEqual(分析("開始\n循環2次\n前進50\n到此為止\n結束\n").返回指令序列(),[{名稱: 常量_指令名_前進, 參數: 50},{名稱: 常量_指令名_前進, 參數: 50}],"循環2次通過!" ); });"生成路徑表"將指令序列轉換成路點序列(經過的轉折點), 其中一個測試用例如下:
QUnit.test( "生成路徑表_前進_左轉_前進", function( assert ) {assert.deepEqual(生成路徑表([{名稱: 常量_指令名_前進, 參數: 50},{名稱: 常量_指令名_轉向, 參數: 90},{名稱: 常量_指令名_前進, 參數: 50}], 初始前進角度),[{起點: 路點0, 終點: 路點1, 長度: 50},{起點: 路點1, 終點: 路點2, 長度: 50}],"通過!" ); });添加測試的過程中, 再次感受代碼封裝的重要性. 在測試目標接口中, DOM操作都需避免(比如document, window).
雖然已經添加了多層循環的代碼分析部分測試用例, 但在實現時, 感覺需要語法樹以便于支持更復雜的語法. 另外在現在的代碼里, 已經開始需要拆分模塊("定制監聽器"比較雜亂).
下面需要調研語法樹相關的JS庫, 比如: ajaxorg/treehugger
另外, 發現TypeScript也可以利用Antlr: Creating ANTLR Applications in TypeScript - Dangl.Blog();
轉載于:https://www.cnblogs.com/program-in-chinese/p/10481029.html
總結
以上是生活随笔為你收集整理的2017-12-09 JavaScript实现ZLOGO子集: 测试用例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS高级学习笔记(6)- 事件循环
- 下一篇: laravel的重定向