以下是示例代码:
App.controller('Crtl', ["$scope", function ($scope) {
$scope.FetchDetail = function () {
var accNum = this.customer.accNo;
GetAccountDetails(accNum);
}; }]);
我是Jasmine的新手,现在我正在为我的角度代码编写单元测试。在这里,我创建了FetchDetail函数,然后调用javascript函数GetAccountDetails(accNum)。
如何使用Jasmine测试此样本。
答案 0 :(得分:1)
这取决于你是否需要存根(即捕获并改变其行为)或者它是否足以监视它(观察它)。无论哪种方式,你最好注射它,所以你可以控制它。
我一直很愉快地使用sinon http://sinonjs.org。
如果你想间谍,即在不改变它的情况下观察它的行为,那么在调用它之前,你会这样做
var spy = sinon.spy(GetAccountDetails);
然后你可以检查它是否被调用,或者是什么参数等等。
spy.calledOnce === true; // if it was called once
spy.called === true; // if it was called at all
spy.firstCall.args[0]; // first argument to first call
// etc. - check out the docs
如果您需要存根,请使用存根功能,然后您可以在其中定义应该的行为。您可以获得所有间谍功能,但也可以控制响应的内容。但是,与现有对象的方法相反,它很难窥探全局。