Javascript 监视闭包内的东西-AngularJS Jasmine测试
我有一个简单的例子,我还没有解决。虽然这个例子很简单,但我想知道如何使用Jasmine单元测试监视这个$log.error。我相信关闭是一个问题,即使我在嘲笑$log,它也会工作,而不是关闭服务。下面是角度服务和测试的代码。有人知道如何监视封闭区内的东西吗 角度代码: 茉莉花试验失败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)
您没有在测试中刷新后端
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"]);
});