1
我希望這些方法僅適用於測試,而不適用於應用程序代碼。例如,刪除任何用戶的方法。我不想在生產代碼中使用此功能。但它在測試代碼中很有用。定義Meteor服務器方法僅用於測試的安全方法是什麼?
我該如何添加在測試環境中提供這樣的方法,同時保持生產代碼不變?
我希望這些方法僅適用於測試,而不適用於應用程序代碼。例如,刪除任何用戶的方法。我不想在生產代碼中使用此功能。但它在測試代碼中很有用。定義Meteor服務器方法僅用於測試的安全方法是什麼?
我該如何添加在測試環境中提供這樣的方法,同時保持生產代碼不變?
這裏是一個可能的解決方案:
讓我們假設你創建一個名爲test-helpers
包。其中,您在TestHelpers
命名空間中創建了一個名爲removeAllUsers
的函數。
現在需要TestHelpers.removeAllUsers
另一個包,你可以這樣做:
Package.onTest(function(api) {
api.use('TestHelpers', 'server');
});
因爲我們只有在onTest
包括包,它不會在你的產品代碼存在。此外,我們創建了一個僅限服務器的函數(不是方法),因此即使它在生產中暴露出來,也不能從客戶端調用。