2013-07-12 77 views
1

最近我一直在玩茉莉花,以便開始在我的項目中加入測試。 所有似乎工作正常,直到我想與業力自動化工作流(以前Karma)。如何使用karma(testacular)運行基本測試

在我的src目錄中,我有簡單的計算器對象,有幾個簡單的方法: function Calculator(){};

var current = 0;

Calculator.prototype.add = function() { 
if (arguments.length < 2) { 
    // we only have one arguments 
    current += arguments[0]; 
    return current; 
} else { 
    // more than one arguments 
    for(var i in arguments) 
     current += arguments[i]; 
    return current; 
} 
}; 

Calculator.prototype.substract = function() { 
var currentValue = arguments[0]; 

for (var i = 1; i < arguments.length; i++) 
    currentValue -= arguments[i]; 
return currentValue; 
}; 

Calculator.prototype.reset = function() { 
window.current = 0; 
} 

然後在我的spec文件,我有以下的(所有測試不通過噶):

VAR計算器=新的計算器();

describe('Calculator', function() { 
beforeEach(function() { 
    window.current = 0; 
}); 

describe('When adding numbers', function() { 
    it('should store the current value at all times', function() { 
     expect(window.current).toBeDefined(); 
    }); 

    it('should add numbers', function() { 
     expect(window.calculator.add(5)).toEqual(5); 
     expect(window.calculator.add(10)).toEqual(15); 
    }); 

    it('should add any number of numbers', function() { 
     expect(calculator.add(1, 2, 3)).toEqual(6); 
     expect(calculator.add(1, 2)).toEqual(9); 
    }) 
}); 

describe('When substracting numbers', function() { 
    it('should substract any number of numbers', function() { 
     expect(calculator.substract(5, 3)).toEqual(2); 
    }); 
}); 

it('should reset the current value back to zero', function() { 
    window.current = 20; 
    calculator.reset(); 

    expect(window.current).toEqual(0); 

    calculator.add(5); 
    calculator.add(20); 
    expect(window.current).toEqual(25); 

    calculator.reset(); 
    expect(window.current).toEqual(0); 
}); 
}); 

當我運行因果報應的開始,我得到如下: 鉻28.0(蘋果機)ERROR 未捕獲的ReferenceError:計算器是不是在/Users/roland/learning/jasmine/jasmine-standalone-1.3定義 。 1/spec/calculator_spec.js:1

謝謝你的幫助!

回答

2

看起來好像你沒有加載具有Calculator的文件,或者它可能是在spec文件之後加載的。在你的Karma配置文件中,你需要這樣做:

files = [ 
    'path/to/calculator.js', 
    JASMINE, 
    JASMINE_ADAPTER, 
    'path/to/calculator_spec.js' 
]; 
+0

是的,就是這樣!我只是看着規格文件夾!謝謝! –

相關問題