2017-05-18 111 views
0

我從Javascript單元測試中設置了基本示例(Chapter1),它可以工作,例如, enter image description here爲什麼茉莉花沒有找到我的規格?

爲什麼,當我什麼似乎是同樣的方式建立一個新的目錄,第2章,但我自己的規格做我沒有得到任何規格正在運行:

enter image description here

我的亞軍文件有:

<script type="text/javascript" src="src/SimpleMath.js"></script> 
<script type="text/javascript" src="spec/SimpleMathSpec.js"></script> 

我的規格文件

spec/SimpleMathSpec.js 

和我的源文件是

src/SimpleMath.js 

他們都確實存在:

$ ls src/SimpleMath.js 
src/SimpleMath.js 
10:56:21 durrantm U2017 /home/durrantm/Dropbox/_/jasmine_2017/Chapter2 
$ ls spec/SimpleMathSpec.js 
spec/SimpleMathSpec.js 

Network標籤顯示他們被人發現OK - 雖然不知道爲什麼零大小??? enter image description here

我甚至可以看到該文件加載: enter image description here

內容:

spec/SimpleMathSpec.js: 

describe("SimpleMath", function() { 
    var simpleMath; 

    beforeEach(function() { 
    simpleMath = new SimpleMath(); 
    }); 

    it("should calculate a factorial for a positive number", function() { 
    result=simpleMath.getFactorial(3); 
    expect(result).toEqual(6); 
    }); 

    it("should calculate a factorial for 0 - which will be zero", function() { 
    result=simpleMath.getFactorial(0); 
    expect(result).toEqual(0); 
    }); 

    it("should calculate a factorial for -3 - which will raise an error", function() { 
    result=simpleMath.getFactorial(-3); 
    expect(result).toThrow Error; 
    }); 

}); 

src/SimpleMath.js: 

SimpleMath = function() {}; 
SimpleMath.prototype.getFactorial = function(number) { 
    if (number < 0) { 
    throw new Error("Can't be less than zero"); 
    } 
    else if (number == 1 || number == 0) { 
    return 1; 
    } 
    else { 
    return number * this.getFactorial(number-1); 
    } 
} 
SimpleMath.prototype.signum = function(number) { 
    if (number > 0) { 
    return 1; 
    } else if (number == 0) { 
    return 0; 
    } else { 
    return -1; 
    } 
} 
SimpleMath.prototype.average = function(number1, number2) { 
    return (number1 + number2)/2; 
} 
+0

我猜0B尺寸是因爲文件正在本地加載(即'file://'),所以沒有網絡活動。我認爲你的測試文件中有一個錯字:'expect(result).toThrow Error;'應該是'expect(result).toThrowError();'。控制檯中是否有錯誤? –

+0

是的,就是這樣。 –

回答

0

這是一個語法錯誤:

expect(result).toThrow Error; 

應該

expect(result).toThrowError; 

語法錯誤顯示在Web Inspect工具控制檯中,並阻止任何規範運行。