首页 > 解决方案 > Jasmine javascript:如何在创建帖子时检查响应以创建一些属性?

问题描述

我有以下回应;如何通过包含 userid 的响应来验证它是否已创建?

({
  id: '612bd3f42ca01806398da144',
  data: Object({
    createdOn: '2021-08-29T18:37:39.693Z',
    lastUpdatedBy: null,
    userId: '60f469cf784379051298e96d',
    displayName: 'Nadia',
    postText: null,
    postImages: [],
    pluginInstance: Object({
      pluginInstanceId: '1627334094776-047554258642281355',
      pluginInstanceTitle: 'communityFeedPlugin'
    }),
    isPublic: false,
    _buildfire: Object({
      index: Object({
        array1: [Object({
          string1: 'userId_60f469cf784379051298e96d'
        }), Object({
          string1: 'displayName_nadia'
        }), Object({
          string1: 'pluginTitle_communityfeedplugin'
        }), Object({
          string1: 'isPublic_0'
        })]
      })
    })
  }),
  tag: 'posts'
})

标签: javascriptjasminekarma-jasmine

解决方案


如果我做对了,您需要知道 userId 属性是否存在/真实。

鉴于响应存储在jsonBody变量中,请使用如下 if 语句:

if (jsonBody.data.userId) {
    ...
}

此外,请确保正确解析 JSON 中的响应,以便您可以导航它。

如果您首先需要知道响应是否存在,您可以添加另一个 if 检查:

if (jsonBody) {
    ...
    if (jsonBody.data.userId) {...}
    ...
}

或者在一个 if 语句中加入两个检查:

if (jsonBody && jsonBody.data.userId) {...}

无论如何,使用正确传达请求状态的后端是一个好习惯,这样您就可以编写更简洁的代码,避免这种类型的检查并在很大程度上依赖状态代码。


推荐阅读