何时在茉莉花中使用间谍vs $ httpBackend

dso*_*len 4 testing jasmine angularjs restangular

我正在编写Jasmine代码来测试一些Restangular逻辑.我想测试我的'Foo' object是否已被Restangulraized,以便该foo.getList()方法将调用GET /foo并返回结果

我可以用两种方式测试这个.我可以添加.spyfoo.getList(),并使其返回预期的结果.或者,我可以$HttpBackend.whenGET("/foo")在那里使用并设置我的预期结果.

其中一个被认为是更可取的吗?

我认为HTTPBackend这是更好的选择,因为它在逻辑流程中"稍后"测试.如果我使用了一个spy我无法证明,例如,我的Restangularize没有搞砸,并试图解决一个不同的URL.

但是,我正在看继承的测试,他们都使用spy,因为我认为编写这段代码的人比我好(他们不能比我在Angular更新手),这让我想知道是否有一个优势使用spy$httpBackend.

Sul*_*han 6

在测试时foo.getList(),请使用httpBackend.一旦测试了仅使用的功能foo.getList(),就使用间谍.这是避免测试重复的最简单的解决方案.

请注意,您正在编写单元测试.每个单位应独立于其他单位.

  • @Sulthan,你能不能通过一个例子为社区详细说明.这将真的有助于更好地理解.非常感谢 (2认同)