0

我正在尝试在 AngularJS 中创建一个 Person 类型的新资源。创建资源后,我想获取新的资源 ID(由服务器返回)。

it('should get the new Person id after add', inject(function($httpBackend, Person) {
        $httpBackend.whenPOST('http://api.example.com/Persons').respond({ "id" : 32});

        var newPerson = new Person();
        newPerson.$save();
        expect(newPerson.id).toEquals(32);

 }));

我在 Karma 中得到“预期未定义为 32”。

我认为我的代码片段与信用卡代码片段末尾的$Resource 文档提供的代码片段非常接近。

关于我做错了什么的任何想法?

4

1 回答 1

0

您需要调用$httpBackend.flush()以刷新请求。

尝试这个:

it('should get the new Person id after add', inject(function($httpBackend, Person) {
        $httpBackend.whenPOST('http://api.example.com/Persons').respond({ "id" : 32});

        var newPerson = new Person();
        newPerson.$save();

        $httpBackend.flush();
        expect(newPerson.id).toEquals(32);
 }));
于 2013-08-11T15:39:20.360 回答