gpt4 book ai didi

javascript - 如何在 Jasmine 中对以下功能进行单元测试?

转载 作者:行者123 更新时间:2023-12-03 09:42:23 25 4
gpt4 key购买 nike

I have a following code:

angular
.module('testApp')
.factory('testDataService', function ($http) {
function testDataService(){
var self = this;
self.test = function(){
//do something
}

self.test1 = function(){
// do something
}
}

return new testDataService();

When I try to write a test case like

beforeEach(function(){
new testDataService();
});

It gives some error like:

> TypeError: '[object Object]' is not a constructor (evaluating 'new testDataService()')

testDataService 中有许多函数,例如“test”、“test1”等。我无法测试其余函数,因为外部函数的范围无法访问。由于“var self=this”,我无法获取实例 请帮忙。

最佳答案

创建对象不需要new操作符。

请检查这个

describe("\n\Testing factory", function () {
var factTestDataService;

beforeEach(inject(function (testDataService) {
factTestDataService= testDataService;
}))


it("factTestDataService test to defined",function(){

expect(factTestDataService.test()).toBeDefined()
})
it("factTestDataService test1 to defined",function(){

expect(factTestDataService.test1()).toBeDefined()
})

it("factTestDataService to defined",function(){

expect(factTestDataService).toBeDefined()
})
});

您需要注入(inject)testDataService工厂并将其存储在本地变量中。

然后你可以使用这个来访问该工厂中定义的方法,就像在 Angular 中一样,并且可以使用不同的 Jasmine 测试方法进行检查。

关于javascript - 如何在 Jasmine 中对以下功能进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31144857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com