2015-11-14 95 views
1

我正在閱讀在線書籍Meteor Testing,並且對於它如何說明您應該構建應用程序有點擔心。它說,在所謂的「應用程序」的全局命名空間創建一個對象,並追加子模塊根據需要,像這樣:如何構建流星應用程序以進行測試

App = { 
    Services: { 
     func1: [some function] 
     func2: [some function] 
     ... 
    }, 
    Collections: { 
     func1: [some function] 
     func2: [some function] 
     ... 
    } 
    ... 
} 

我的擔憂是:

  1. 將這個我的應用程序的安全性產生負面影響?
  2. 何時何地應該在應用程序名稱空間中定義函數?將它們全部添加到一個地方會很快變得難以抗拒。
  3. 我應該爲所有想要單元測試的功能做這件事嗎?如果不是,我如何訪問我在模板的javascript文件範圍內定義的函數?

如果你們中的任何一位能夠指出我在流星測試方面的額外資源,我很想看看其他人的建議。謝謝。

+1

嗨。我是這本書的作者。本章在完成之前泄露!我將很快發佈一個更新,告訴你如何解決第2點和第3點。第1點沒有問題,但我會讓別人回答:) –

+0

太棒了!感謝您的迴應。順便這本書,順便說一句,這非常有幫助。我還有另外一個無關的問題,我也發佈在meteortesting網站上。我們能夠使用「Meteor.stubMethods」嗎?我無法使用它,而且我很確定我擁有最新版本的速度。 – Didericis

+1

對,我沒有更新Velocity幫手的章節!我發佈了這本書的更新,並忘記封鎖本章。哎呀!完成後我會在這裏更新。並感謝:) –

回答

2

您可以在不同的文件中分配所有函數的定義,但顯然,加載順序很重要。我建議爲您的項目創建一個Meteor包,以定義所需的所有這些功能和其他全局變量,然後api.export('App')api.export('App', 'client')(取決於您的需要)。

+1

這是正確的,可以創建一個核心包。這一章將很快說出:) –

+0

@ Xolv.io酷!感謝您對Meteor社區的貢獻,Sam! – ffxsam

+0

請注意,核心軟件包應該只包含名稱空間。服務的實現應該存在於應用程序中(或者在依賴於核心軟件包的其他軟件包中)。這會給你最好的關注點分離 –

相關問題