任何人都可以在PLUNKER中爲我提供一個示例,說明如何爲karma/jasmine test加載JSON文件。我想從JSON文件讀取數據以進行測試我正在寫作的案例。我一直在尋找,但他們沒有提到如何做到這一點的明確例子?我很感激,如果任何人都可以提供這個例子。如何使用karma + Jasmine加載外部Json文件進行angularJS測試?/
回答
是否想從Web服務器或本地文件系統讀取JSON文件?沒有人能夠給出一個從Plunker的本地文件系統加載的例子,因爲它在Web瀏覽器中運行並且被拒絕訪問文件系統。
下面是如何從磁盤加載一個JSON文件中的任何Node.js的程序爲例,這應該噶/茉莉花工作:
var fs = require('fs');
var filename = './test.json';
fs.readFile(filename, 'utf8', function (err, data) {
if (err) {
console.log('Error: ' + err);
return;
}
data = JSON.parse(data);
console.dir(data);
});
設置的路徑來尋找您的文件,在這種情況下,我的文件(staticData.json)位於/ test文件夾下。
jasmine.getFixtures().fixturesPath = 'base/test/';
staticData= JSON.parse(jasmine.getFixtures().read("staticData.json"));
你也必須添加模式在karma.conf.js文件,是這樣的:
{ pattern: 'test/**/*.json', included: false, served: true}
可以使用需要
var data = require('./data.json');
console.log(data);
// Your test cases goes here and you can use data object
這個答案爲什麼downvoted?似乎是對我來說有效的替代方案。不需要使用'require'的一些原因? – MondKin
@MondKin,我在測試文件中始終使用require來提取必要的庫和資源。我不知道爲什麼這是downvoted。我剛剛投票。 –
我想補充一點,如果你想要一個沒有.js擴展名的文件,你需要在使用require時使用一個技巧。上面的例子不一定會起作用,因爲'.js'將被追加到最後,並且無法找到'data.json.js'。解決方法是添加一個假的URL參數,如'require('./ data.json?test =')'。這將變成'data.json?test = .js',它仍然會找到文件。 –
- 1. 單元測試:AngularJS + Karma + Jasmine,加載本地JSON
- 2. 如何使用PHP文件在Karma/Jasmine中運行測試?
- 3. 如何在Angular 2 karma jasmine測試中從JSON文件加載模擬數據?
- 4. Karma-Jasmine:如何測試$ translate.use?
- 5. 如何使用Karma/Jasmine測試AngularJS應用程序
- 6. AngularJS測試指令與Karma,Jasmine和ngHtml2JsPreprocessor:模板未加載
- 7. 在Jasmine Karma測試中讀取文件
- 8. AngularJS w Karma - 加載Jasmine之前Mocks
- 9. AngularJS和Karma/Jasmine單元測試 - 文件夾結構和生產
- 10. 在Jasmine中使用外部庫進行單元測試
- 11. 在Karma-Jasmine測試中獲取外部文本文件的內容
- 12. karma-jasmine - 如何測試返回對象
- 13. 使用Karma和Jasmine獲取angularJs單元測試的錯誤
- 14. karma/jasmine/angular - 使用templateUrl的故障單元測試指令AngularJS
- 15. jquery-jasmine無法加載json文件
- 16. 如何將ngRoute注入Jasmine/Karma AngularJS單元測試?
- 17. 如何使用Jasmine/karma正確注入工廠並進行測試?
- 18. 用node-inspector調試karma-jasmine測試
- 19. AngularJS:使用Karma運行e2e測試
- 20. 用EJS索引進行角度Karma-Jasmine單元測試
- 21. 用Karma-Jasmine讀取二進制文件
- 22. 如何在Jasmine中加載Rails視圖以進行測試?
- 23. Angularjs Jasmine單元測試
- 24. 如何加載用於Jasmine節點測試的文件?
- 25. 用$ httpBackend測試AngularJS with Jasmine/Karma不工作
- 26. 調試反應單元測試(Karma/Jasmine)
- 27. 如何在ionic2中使用karma/Jasmine測試異步函數?
- 28. 使用Karma Jasmine - 如何測試元素和JavaScript?
- 29. AngularJS測試與Karma
- 30. 使用webpack進行Karma測試
我加載外部JSON數據文件想要從本地系統訪問任何(* .json)文件使用karma/jasmine進行angularJS測試 – user2573410
我認爲上面的代碼應該適合你。 – JBCP
jasmine.getFixtures()。fixturesPath ='base/test /'; (jasmine.getFixtures()。read(「staticData.json」));方法如下:staticData = JSON.parse(jasmine.getFixtures – Daniela