[英]TypeError: undefined not a constructor when using beforeEach in jasmine test
我在 jasmine 中編寫單元測試時遇到了一個問題,我設法將其提煉為一個非常基本的測試場景:
describe('weird shit', function () {
var myVal;
beforeEach(myVal = 0);
it('throws for some reason', function () {
expect(myVal).toBe(0);
});
});
這會引發一個類型錯誤:
Test 'weird shit:throws for some reason' failed
TypeError: undefined is not a constructor (evaluating 'queueableFn.fn.call(self.userContext)') in
file:///C:/USERS/9200378/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/14.0/EXTENSIONS/SKJV5WFA.151/TestFiles/jasmine/v2/jasmine.js (line 1886)
run@file:///C:/USERS/9200378/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/14.0/EXTENSIONS/SKJV5WFA.151/TestFiles/jasmine/v2/jasmine.js:1874:20
execute@file:///C:/USERS/9200378/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/14.0/EXTENSIONS/SKJV5WFA.151/TestFiles/jasmine/v2/jasmine.js:1859:13
queueRunnerFactory@file:///C:/USERS/9200378/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/14.0/EXTENSIONS/SKJV5WFA.151/TestFiles/jasmine/v2/jasmine.js:697:42
execute@file:///C:/USERS/9200378/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/14.0/EXTENSIONS/SKJV5WFA.151/TestFiles/jasmine/v2/jasmine.js:359:28
fn@file:///C:/USERS/9200378/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/14.0/EXTENSIONS/SKJV5WFA.151/TestFiles/jasmine/v2/jasmine.js:2479:44
如果我刪除了beforeEach
那么它工作正常:
describe('weird shit', function () {
var myVal =0;
it('throws for some reason', function () {
expect(myVal).toBe(0);
});
});
哪個我不明白, beforeEach
很基礎,請大家幫忙。
beforeEach
接受一個函數,你傳遞了myVal = 0
的結果,即0
,它不是一個函數。
beforeEach(myVal = 0);
用以下代碼替換上面的代碼:
beforeEach(function() {
myVal = 0;
});
有關更多信息,請參閱此處的 jasmine 2.5 文檔。
beforeEach(function(){myVal = 0;});
beforeEach() 的目的是執行一些包含設置規范的代碼的函數。
在這種情況下,它設置變量myVal = 0
您應該將一個函數傳遞給 beforeEach(),如下所示:
beforeEach(function() {
myVal = 0
});
為了成功設置您的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.