茉莉花角度单元测试'无法读取未定义的'属性'

2024-02-26

我刚刚开始学习角度单元测试。但是,对具有 http 调用的函数的此测试失败。我已经指出了问题,但我无法解决它。我知道这是一个简单的问题

控制器

//Get data from URL
vm.getJson = function() {
    var url = 'https://www.reddit.com/r/worldnews/new.json',
        count = 0;
    $http.get(url).success(function(response) {
        console.log(response);
        for (var i = 0; i < response.data.children.length; i++) {
            vm.data.push(response.data.children[i].data);
            count++;
            if (count === response.data.children.length) {
                vm.numberOfPages();
            }
        }

        vm.result = true;

    }).error(function(err) {
        console.log(err);
    });

};

The response I am getting is: enter image description here

Spec

 //Testing the getJson function
describe('vm.getJson()', function() {

   it('It should return dummy Data as response and vm.result to be truthy', function() {

    var dummyData = {name: 'Umair'};
    $httpBackend.whenRoute('GET','https://www.reddit.com/r/worldnews/new.json').respond(200, dummyData);

    MainCtrl.getJson(); 

    $httpBackend.flush();

    expect(MainCtrl.result).toBeTruthy();


}); });

如果我从控制器函数中删除循环,我不会收到任何错误并且测试通过。我收到的错误是:

无法读取未定义的“子级”。从我附加的响应数据图像来看,children 是数组。


当你的测试运行时,$httpBackend实际上拦截了$http.get调用并分配dummyData到您在中指出的答复

$httpBackend.whenRoute('GET','https://www.reddit.com/r/worldnews/new.json').respond(200, dummyData);

这种模拟行为可以让您的单元测试快速完成,而无需依赖于测试机器上可访问的 reddit。所以在你的控制器中,response.data = {name: 'Umair'}并且该对象没有名为的子对象children.

为了解决这个问题,对于dummyData,尝试更多地模仿真实数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

茉莉花角度单元测试'无法读取未定义的'属性' 的相关文章

  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • 获取被调用的 javascript 文件的查询字符串

    是否可以在调用的 javascript 文件上使用 javascript 获取查询参数 如下所示 in html in file js console log this location query 这是否可能以某种方式实现 或者我必须使用
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • jQuery:查找具有特定自定义属性的元素

    我只想找到具有特定自定义属性值的元素 例如 我想找一个div其具有属性data divNumber 6 var number 6 var myDiv data divNumber number 我尝试使用http api jquery co
  • 从选择 onChange 调用 javascript 函数 [重复]

    这个问题在这里已经有答案了 所以我有一个简单的 HTML 选择框和一个 javascript 警报功能 我希望选择框有一个 onchange 事件来调用 javascript 警报函数 这是我到目前为止所拥有的 HTML div Type
  • ui-sref 和变量状态参数名称

    我想呈现一个链接 例如 a 其中州名myState和钥匙myKey是变量 有办法做到这一点吗 我发现自己处于同样的情况 我也无法完成这一点 尝试使用 ng click 移动代码 并在 ng click 函数内部使用 stage go htt
  • EmberJS:对象作为查询参数来刷新模型

    我遵循了查询参数指南 http guides emberjs com v1 11 0 routing query params http guides emberjs com v1 11 0 routing query params 而且效
  • 正则表达式中连字符的这种用法有效吗?

    NB I only想知道它是否是正则表达式定义中未转义连字符的有效应用 它是not关于匹配电子邮件 连字符或反斜杠的含义 量词或其他任何内容的问题 另外 请注意 链接的答案并没有真正讨论转义 未转义连字符之间的有效性问题 通常我会像这样声明
  • 如何在 iOS 中使用 Cordova 文件传输插件下载文件

    我使用以下代码来下载文件 scope onDownloadMusic function live var downloadUrl offlineUrl fileName var hostUrl encodeURI live url var
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • RxJava android mvp 单元测试 NullPointerException

    我是 mvp 单元测试的新手 我想对演示者进行一个非常基本的测试 它负责登录 我只想断言 view onLoginSuccess 这是演示者代码 public LoginPresenter LoginViewContract loginVi
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • Angular JS - 使服务可以从控制器和视图全局访问

    假设我们有以下服务 myApp factory FooService function 然后 从控制器中 我会说 myApp controller FooCtrl scope FooService function scope FooSer
  • React Redux - 在辅助函数中访问现有存储

    我试图在反应组件之外获取存储实例 存储状态 即在单独的辅助函数中 我有我的减速器 我的动作 我在最上面的组件中创建了一个商店 configStore js import createStore from redux import gener
  • 如何在 TypeScript 中使用 navigation.replace ?

    我试图在我的代码中使用它 const navigation useNavigation navigation replace AllFriends 但我不断收到错误消息 Property replace does not exist on
  • Three.js点击单个粒子

    In this example http jsfiddle net agqq96bq 2 您可以看到 2 个可点击的粒子 但它们都受到点击的影响 另外 我只想检测粒子上的点击 而不将它们过滤出场景 像这儿 if intersects len
  • 如何跨多个文件跨越 javascript 命名空间?

    我永远忽略了javascript 几年前我开始使用 jQuery 这样我就可以过得去 但随着我开始更多地进行 TDD 我昨天决定真正深入研究 javascript 之后可能还有咖啡脚本 在我的 ASP NET Web 窗体应用程序中 我有很
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial

随机推荐

  • R Plotly 默认取消选择迹线

    我正在使用 R Plotly 并有一行以下形式的行 add trace y meanRank x DateOnly data timeSeriesDF name Daily Value text hoverText hoverinfo te
  • 可以使用 Angular 依赖注入代替 RequireJS 吗?

    我从 Angular 开始 如何将一个应用程序的所有代码分解为多个文件 我观看了 60 多分钟的介绍 他们提到我可以在没有 requirejs 或任何其他框架的情况下做到这一点 假设我有这样的东西 效果很好 var app angular
  • ROracle SELECT 语句中的绑定参数

    使用时ROracle in R 我想将一些参数绑定到数据 所以我这样做 gt dbh lt dbConnect Oracle user email protected cdn cgi l email protection port sid
  • SomeType' 是什么意思? [复制]' aria-label='Scala - ' => SomeType' 是什么意思? [复制]'> Scala - ' => SomeType' 是什么意思? [复制]

    这个问题在这里已经有答案了 今天我想问一下什么是 gt SomeType意思是 我发现它用在本文 http www codecommit com blog scala the magic behind parser combinators
  • 使用自签名证书进行代码签名软件

    目前 我们公司使用 Verisign Symantec 的数字证书对我们的软件进行代码签名 我们公司有人试图说服我们使用自签名证书 而不是从 Verisign Symantec 购买的证书 部分是作为 降低成本 的过程 尽管它们对于 2 3
  • 在运行时突出显示 WebDriver 中的元素

    有人可以帮忙吗 在 WebDriver 中执行测试期间 如何突出显示以下类中的所有 Web 元素 使用 Selenium RC 时 一切都非常简单 但使用 WebDriver 时我却遇到了困难 如果有人能为我提供一些我可以尝试的代码 以及该
  • .NET 集合类的渐近复杂度

    是否有任何关于 NET 集合类方法的渐近复杂性 big O 和其他 的资源 Dictionary
  • 为什么 Asp.Net Core 身份验证方案是强制性的

    我对 Asp Net Core 中似乎强制使用身份验证方案这一事实感到非常沮丧 我的目标是构建一个 API 我不想了解有关客户端的任何信息 我已经构建了自定义身份验证和授权 效果很好 我没有使用身份或cookie 但是 如果没有有效的身份验
  • 如何使用 Angular 过滤器对数据进行分组?

    我有一份球员名单 每个球员都属于一个组 如何使用过滤器列出每个组的用户 name Gene team team alpha name George team team beta name Steve team team gamma name
  • jdk1.6内存布局

    我使用的是jdk1 6 我配置了 Xmx 2G Xms 2G 新尺寸 最大新尺寸 660m 我启用了详细GC 我看到了这一点 但我不明白 PSYoungGen total 608256K used 32440K eden space 540
  • 我应该有多少个 DBContext

    使用实体 我目前拥有 dbcontext 其中包含每个表 我想知道是否每个人都这样做 或者例如每个模块都有一个上下文 对我来说 dbcontext 是一种将模型映射到数据库的连接 并且由于只有一个数据库 所以我只需要一个 在我深入讨论之前
  • 防止登录请求泛滥的简单方法?

    如果我的网站使用 POST 表单进行登录 有什么快速 简单的方法可以防止恶意客户端向我的 Web 服务器发送大量 POST 请求 试图暴力破解我的用户帐户 PHP MySQL Apache 防止暴力破解比乍看起来要棘手 解决方案是组合控制
  • 对象、类、函数

    我想知道 JavaScript 对象 类和函数之间有什么区别 我认为类和函数是对象类型是正确的吗 类和函数的区别是什么 或者它们真的是同一件事 只是它们的术语根据它们的使用方式而变化 function func alert foo a fu
  • vscode 选择不寻常的自动完成选项

    在使用最新版本的 Visual Studio Code 时 我正在编辑 JavaScript 文件 并且经常希望将输出记录到控制台 我创建了一个用户片段 以便更容易自动完成 但我发现自动完成中获得的默认选项是下面红色突出显示的选项 而不是绿
  • 重载不明确(int -> int64_t 与 int -> double)

    为什么是隐式转换int to int64 t vs int to double模糊的 我本以为积分重载会优先于浮点积分 include
  • 无法将 X 用作 Y,因为该名称已在使用中,即使尚未使用

    我使用的是 PHP 5 4 并且具有类似于以下内容的 PSR 0 类结构 A Library Session php namespace A Library class Session 我的 应用程序 Session php namespa
  • Kendo UI 指令要求 jQuery 在 AngularJS 之前可用。请在文档中的 Angular 之前包含 jquery

    我有一个带有角度应用程序的 Mvc 有两个布局文件 登录布局 默认布局 主布局 单击 影片 按钮时 调用 影片控制器 和 影片动作 public ActionResult Movie return View 它使用 mainlayout 文
  • 如何编写具有默认值和选项的 tcl 程序?

    我正在尝试编写一个 tcl 程序 它执行以下操作 proc myProc arg1 def1 arg2 def2 tcl gt myProc arg1 val1 arg2 val2 arg1 variable has val1 arg2 v
  • Maven Buildnumber 插件 - Git

    Maven Buildnumber 插件似乎还不能与 GIT 一起使用 暂时有解决办法吗 我最近从 SVN 切换到 GIT 发现这是一个简单的过渡 但这是我目前唯一没有做的事情 Walter 我使用这个 Maven 插件 https git
  • 茉莉花角度单元测试'无法读取未定义的'属性'

    我刚刚开始学习角度单元测试 但是 对具有 http 调用的函数的此测试失败 我已经指出了问题 但我无法解决它 我知道这是一个简单的问题 控制器 Get data from URL vm getJson function var url ht