Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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
Javascript 监视闭包内的东西-AngularJS Jasmine测试_Javascript_Angularjs_Unit Testing_Jasmine - Fatal编程技术网

Javascript 监视闭包内的东西-AngularJS Jasmine测试

Javascript 监视闭包内的东西-AngularJS Jasmine测试,javascript,angularjs,unit-testing,jasmine,Javascript,Angularjs,Unit Testing,Jasmine,我有一个简单的例子,我还没有解决。虽然这个例子很简单,但我想知道如何使用Jasmine单元测试监视这个$log.error。我相信关闭是一个问题,即使我在嘲笑$log,它也会工作,而不是关闭服务。下面是角度服务和测试的代码。有人知道如何监视封闭区内的东西吗 角度代码: 茉莉花试验失败 您没有在测试中刷新后端 it("should log error when http errors out", function () { $httpBackend.whenGET(urlExpected)

我有一个简单的例子,我还没有解决。虽然这个例子很简单,但我想知道如何使用Jasmine单元测试监视这个$log.error。我相信关闭是一个问题,即使我在嘲笑$log,它也会工作,而不是关闭服务。下面是角度服务和测试的代码。有人知道如何监视封闭区内的东西吗

角度代码:

茉莉花试验失败


您没有在测试中刷新后端

it("should log error when http errors out", function () {
    $httpBackend.whenGET(urlExpected).respond(500, "Random Error");
    $httpBackend.flush();
    expect(mockLog.error).toHaveBeenCalled();
});
当你加上它的时候,你会在以后的冲水中得到一个错误,因为应该没有什么东西可以冲水了,把它拿出来。 此外,这将导致您的verifyNoOutstandingRequest始终通过

Beforeach中的期望值是什么?似乎不需要

顺便说一句,$log已被角度模拟模拟,请查看此处以了解更多详细信息: $log

你可以干掉间谍,然后这样做:

it("should log error when http errors out", function () {
    $httpBackend.whenGET(urlExpected).respond(500, "Random Error");
    $httpBackend.flush();
    expect(mockLog.error.logs).toContain(["Error loading WebConfigSettings"]);
});

有趣。我在afterEach语句中刷新后端,因为我调用了a get every测试。当我将后端更改为expect之前时,我的测试已解决。谢谢你!
it("should log error when http errors out", function () {
    $httpBackend.whenGET(urlExpected).respond(500, "Random Error");
    $httpBackend.flush();
    expect(mockLog.error).toHaveBeenCalled();
});
it("should log error when http errors out", function () {
    $httpBackend.whenGET(urlExpected).respond(500, "Random Error");
    $httpBackend.flush();
    expect(mockLog.error.logs).toContain(["Error loading WebConfigSettings"]);
});