Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在jasmine单元测试中模拟登录和登录错误_Angularjs_Unit Testing_Mocking_Jasmine_Firebase - Fatal编程技术网

Angularjs 如何在jasmine单元测试中模拟登录和登录错误

Angularjs 如何在jasmine单元测试中模拟登录和登录错误,angularjs,unit-testing,mocking,jasmine,firebase,Angularjs,Unit Testing,Mocking,Jasmine,Firebase,这是我需要进行单元测试的代码 $scope.FBLogin = function () { var ref = new Firebase(firebaseURL); ref.authWithOAuthPopup("facebook", function(error, authData) { if (error) { console.log("Login Failed!", error); } else {

这是我需要进行单元测试的代码

$scope.FBLogin = function () {
    var ref = new Firebase(firebaseURL);
    ref.authWithOAuthPopup("facebook", function(error, authData) {
        if (error) {
            console.log("Login Failed!", error);
        } else {
            $scope.$apply(function() {
                $scope.$authData = authData;
                $scope.isAdmin = true;
            });
            console.log("Authenticated successfully with payload:", authData);
        }
    });
};

如何模拟jasmine中的登录行为?提前谢谢

我从未使用过Firebase,所以我不知道它是否提供了该功能,但如果没有,则将对
new Firebase()
的调用提取到一个服务中,您可以将其注入,并返回一个承诺。因此,监视该服务并使其返回一个虚假的承诺是微不足道的。对不起,你能告诉我一些简单的代码怎么做吗?你看过了吗?他们使用jasmine.createSpy(),它有一个
和.returnValue(returnValueHere)
可以用来模拟结果。我从未使用过Firebase,所以我不知道它是否提供了这个功能,但如果没有,则将对
新Firebase()
的调用提取到一个服务中,您可以将其注入,并返回一个承诺。因此,监视该服务并使其返回一个虚假的承诺是微不足道的。对不起,你能告诉我一些简单的代码怎么做吗?你看过了吗?他们使用jasmine.createSpy(),它有一个
和.returnValue(returnValueHere)
可以用来模拟结果。