我有一个控制器,它需要运行几个异步方法,这些方法与客户端上的数据进行交互并且不调用服务器。我有一种方法在浏览器中运行良好,但我想通过测试来驱动这些方法,但我无法让它在测试环境(Karma 和 Mocha)中运行。原因是 $resource.query() 返回的空数组永远不会在测试环境中填充,因为承诺没有得到解决。这是我在测试套件中的 beforeEach 。
beforeEach(inject(function($rootScope, $controller, scheduleService){
scope = $rootScope.$new();
sc = $controller('scheduleCtrl', {
$scope: scope, service: scheduleService
});
scope.$apply();
}));
scheduleCtrl 有一个属性 schedule ,它在其构造函数中分配给 Resource.query() 的结果。我可以看到加载到 MockHttpExpectation 中的三个返回对象。
但是当我去运行测试时 sc.schedule 仍然是一个空数组,所以测试失败了。如何让 Resource.query() 在测试中解决?