我正在使用Jasmine为我的Angular应用程序构建测试。
我想模拟api调用以返回一些数据,但我的控制器上的api调用是
$scope.getSubjects = ->
$http.get "/api/students/#{$scope.freshBooking.StudentId}"
.then (response) ->
$scope.subjects = response.data.Subjects
在我的测试中我有
@httpBackend.whenGET(/^\/api\/students/.*/).respond ->
[200, {data: 'subjects'}]
it 'should have data in subjects', ->
expect(@scope.subjects).toBeUndefined()
@scope.getSubjects()
@httpBackend.flush()
expect(@scope.subjects).toBeDefined()
我收到错误消息“预期未定义要定义。”所以我猜我没有为api电话返回任何数据。
我如何才能让这个工作?我的正则表达式不正确吗?
答案 0 :(得分:1)
正则表达式似乎不正确。试试以下
\/api\/students\/#(.*) //The brackets group would extract Student ID
Slash"学生"为了逃避正斜杠,删除了最后的斜杠到正则表达式,因为实际的API调用最后没有斜杠。
进一步的正则表达式组可用于提取学生ID
{{1}}