smartDoc 0.1.1版正式發佈,其中加入了更多方便生成文檔的功能,主要特性以下:html
* 加入@demo配置項,看能夠動態抓取html和js的內容做爲@example,同時支持擴展@demo讀取
* 支持jasmine測試js文件的單元代碼抓取爲@example
* 實現多個example顯示和tab切換
* 加入@show配置項來控制直接顯示example效果
* 主題改版
* 去除@attribute屬性設置,統一使用@property;git
docConfig新增配置:github
//demo掃描目錄 demoDir: "", //demo生成器地址 demoBuilder: './demoBuilder.js', //demo代碼生成器地址 codeLoader: './jasmineLoader.js'
新版效果片斷如圖:promise
1. 之前的@example都須要寫在代碼註釋當中,很影響代碼的可讀性;新版中加入@demo配置,經過設置文件路徑,能夠自動讀取html或者js文件生成@example;單元測試
原來的寫法: | 如今的寫法: |
/** * ................ * @method getTargets3 * @example * var bar; .... */
|
/** * ................ * @method getTargets3 * @demo inherit/getTargets3.js */
|
inherit/getTargets3.js 會讀取定義在docConfig文件demoDir配置下的文件而後生成@example測試
支持jasmine測試js文件的單元代碼的讀取,減小而外開銷。不過同時須要注意的事情是儘可能編寫測試用例的時候,每一個單元儘可能獨立,不要使用全局變量;ui
例如:
this
/** * Deferred對象 * @class Deferred * @constructor * @demo st/deferred.js [resolve] */ function Deferred() { }
jasmine測試代碼deferred.js:spa
describe('Deferred', function() { it("resolve",function(testDone){ var defer = st.Deferred(); function test(){ setTimeout(function(){ defer.resolve("test"); }) return defer.promise(); } st.when(test()).done(function(result){ expect(result).toBe('test'); testDone(); }) }) ..........
st/deferred.js [resolve] 對應的就是代碼中的it("resolve",fn)的內容,文件地址後面的[...]表示jasmine的文件單元測試項,最終效果以下:3d
jasmine的是經過內置的jasmineLoader去解析代碼的,同時能夠自定義代碼解析規則 - docConfig的demoBuilder和codeLoader
例子中配置了多個@demo,同時在@demo中文件路徑的配置加入了{...},表示tab的標題,,若是沒有設置則取文件名;@show表示直接在頁面上顯示結果
/** * ui測試類; * @class UI * @constructor * @content {string} type 內容 * @demo ui.html * @demo ui2.html {ui測試2} * @show true */ function UI(content){ this.init(content); }
效果以下:
smartdoc還在持續建設中,你們使用中有什麼問題和建議,能夠直接使用 git的issue 反饋給我。
相關連接以下: