Javascript 在angular中检测和测试非响应服务器

Javascript 在angular中检测和测试非响应服务器,javascript,angularjs,unit-testing,Javascript,Angularjs,Unit Testing,我有一个与此类似的http请求: const timeout = $q.defer() let timedOut = false setTimeout(() => { timedOut = true timeout.resolve() }, 4000) $http({ method: 'GET', url: 'www.someurl.com', timeout: timeout.promise }).then((response) => { retur

我有一个与此类似的http请求:

const timeout = $q.defer()
let timedOut = false

setTimeout(() => {
  timedOut = true
  timeout.resolve()
}, 4000)

$http({
  method: 'GET',
  url: 'www.someurl.com',
  timeout: timeout.promise
}).then((response) => {
    return response.data
  })
  .catch(() => {
    if (timedOut) {
      return "server is not responding"
    } else {
      return "some other error"
    }
  })
这段代码的目的是发送一个http请求,如果4秒钟后没有响应,请求将被取消,并返回一条服务器没有响应的消息


问题是我不知道如何测试这样的东西,看看它是否真的有效。我通常使用带有$httpBackend的单元测试来模拟请求,但在这种情况下它不起作用。这是正确的方法吗?

你在使用什么测试api/框架?我在使用Jasmine with Karma你在使用什么测试api/框架?我在使用Jasmine with Karma