簡體   English   中英

Angular Karma Jasmine - 測試功能

[英]Angular Karma Jasmine - test function

基本上我必須測試下面這個函數,我正在從文本文件中讀取

$window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function (dir) {
    var path = 'somefile.txt';                    
    dir.getFile(path, { create: true }, function (file) {
        file.file(function (file) {
            var reader = new FileReader();
            reader.onloadend = function () {                               
                resolve(this.result);
            }
            reader.readAsText(file);
        });
    }, error); 
}, error);

我一直在寫單元測試用例來讀取文件

describe('get data from file', function () {            

    it('should read the files from the data', function () {
        var syncFile = 'somefile.txt';

        expect( ).toBe( );
    });
});

如何為filereader編寫單元測試來讀取文件? PS:我是使用業力進行單元測試的新手

您不應該直接使用FileReader。 將該行更改為

var reader = new $window.FileReader();

在您的測試中模擬$ window並返回自定義FileReader對象。 然后對此進行測試。 像下面的東西。

describe('get data from file', function () {

    var $window, fileReader;

    beforeEach(function () {

        inject(function (_$window_) {
            $window = _$window_;
        });

        fileReader = function () {
            return {};
        };

        spyOn($window, "FileReader").and.returnValue(fileReader);
    });

    it('should read the files from the data', function () {
        var syncFile = 'somefile.txt';

        expect($window.FileReader).toHaveBeenCalled();
   });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM