2016-11-02 101 views
2

我有反應與npm和webpack的應用程序。我正在嘗試向它添加單元測試。如何將外部JS從CDN注入Jest單元測試?

我從我的index.html中包含的CDN使用jQuery而不是使用節點模塊。

我在組件Test1中使用了jQuery,我在其中添加了單元測試用例。

現在,當我執行測試用例,我收到提示說 ReferenceError: $ is not defined 我明白,玩笑是不是能解決這個問題,因爲我沒有在組件導入jQuery的進口。

問題是,如何讓Jest知道外部JS?

回答

0

有幾種方法可以實現這一點。我更喜歡使用Require.js,儘管您可能已經在使用另一個像Browserify或Webpack這樣的打包工具了,這也應該可以工作。 Require.js的快速入門是this示例項目。簡而言之,在您的CDN文件中設置Require.js,在您的前端引用捆綁的結果,將Require.js掛接到您的測試中,然後像其他節點模塊一樣掛接它們。

+0

是否有可能使用Webpack實現它,因爲我已經在使用它。另外這個文件說我們可以在執行測試之前運行設置文件。 https://facebook.github.io/jest/docs/configuration.html#setupfiles-array –

2

我們可以使用「setupFiles」configuration來允許Jest在開始執行測試之前執行所需的所有腳本/庫/模塊。

創建並添加一個文件到「setupFiles」:[「path/to/setup.js」],並將你的庫包含進去。

例如, global.jQuery = global.$ = require('path/to/jQuery')

請找我query張貼在玩笑GitHub庫。