【发布时间】:2017-11-22 07:16:24
【问题描述】:
所以我在单元测试中有一个服务存根,我需要更改不同测试的返回值。我尝试使用间谍来捕获并返回所需的值,但没有奏效。目前我有一个相关函数返回一个之前声明的变量,但是,这只会使每个测试超时,就好像永远不会返回一个值一样。
let schoolIn = false
const calandarServiceStub = {
getSchedule(a) {
return Promise.resolve()
},
// currentClass(a){
// return 'cu'
// },
next(a) {
return 'nextu!'
},
convertTime(a, b) {
return 650
},
isSchoolIn(a, b) {
return schoolIn
},
needsInc(a, b) {
return false
},
endsIn(a) {
return 'endseen'
}
}
还有错误
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
at http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1973:23 [ProxyZone]
at ProxyZoneSpec.Array.concat.ProxyZoneSpec.onInvokeTask (http://localhost:9876/base/src/test.ts?debf1c3289163cfbc2c419b8e0e217abd44684a5:79544:39) [ProxyZone]
at ZoneDelegate.invokeTask (http://localhost:9876/base/src/polyfills.ts?165d95334de0fc3588419d6d62f0ed66f90a6ad5:1552:36) [ProxyZone]
at Zone.runTask (http://localhost:9876/base/src/polyfills.ts?165d95334de0fc3588419d6d62f0ed66f90a6ad5:1320:47) [<root> => ProxyZone]
at ZoneTask.invoke (http://localhost:9876/base/src/polyfills.ts?165d95334de0fc3588419d6d62f0ed66f90a6ad5:1615:38) [<root>]
at timer (http://localhost:9876/base/src/polyfills.ts?165d95334de0fc3588419d6d62f0ed66f90a6ad5:2695:29) [<root>]
当我这样写时:
isSchoolIn(a, b) {
return true
},
一切正常,除非我需要将该值设置为 false。
【问题讨论】:
标签: javascript angular unit-testing