angularjs - Angular 单元测试中scope = {} 和scope = $rootScope.$new() 之间的区别

标签 angularjs unit-testing

我注意到设置 Controller 的单元测试时有两种方法 - scope = {}scope = $rootScope.$new()

我需要知道的是选择其中之一的原因。不幸的是,我还没有看到任何解释为什么使用一个而另一个没有。

我想,scope = {}会更快,但是还有其他进步吗?

最佳答案

如果您想调用作用域上的方法,例如 .$watch 或其他任何内容,则需要在您正在使用的 scope 对象上定义它们。 {}(空对象)没有此类方法,但 $rootScope.$new 有。

如果您不需要使用此类方法,那么实际上使用什么方法并不重要,您可以在对象上 stub 或定义这些方法并将其作为作用域注入(inject)。这取决于您的测试需要什么。

关于angularjs - Angular 单元测试中scope = {} 和scope = $rootScope.$new() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31924720/

相关文章:

c# - 协助使用犀牛模拟测试抽象方法

unit-testing - 为什么我的单元测试需要一个模拟框架?

visual-studio - 不使用鼠标运行 NUnit 测试?

javascript - 使用 ng-view 时可以保留变量作为 View 之间的引用吗?

JavaScript/jQuery getSelection 高亮合并span html元素

javascript - 滚动到水平溢出的元素

python - 使用模拟对象而不束缚单元测试

javascript - 类型错误:Users.create 不是函数

javascript - AngularJS - 如果我不提交,如何保持原始值

java - 将泛型与 Mockito 匹配