首页 > 解决方案 > 期望 {} 是 chai 中的一个对象

问题描述

describe('YoutubeService.getTrendingVideos', function() {
    it('should resolve to expectedResult', function() {
        const params = {
            id: 'O2uf_RveI80',
            title:
                'Shambho Shankara Full Movie - 2018 Telugu Full Movies - Shakalaka Shankar, Karunya',
            thumbnail: 'https://i.ytimg.com/vi/O2uf_RveI80/hqdefault.jpg',
            publishedAt: '2 days ago',
        };
        return chai.assert.isObject(getTrends.YoutubeService.getVideoDetails(params),'object match found');
   });

以上是用 chai 编写的测试断言,用于测试函数是否正在返回对象。

功能如下:

export class YoutubeService {
  getTrendingVideos(country) {
    var params = {
      part: 'snippet',
      chart: 'mostPopular',
      regionCode: country, // should be replaced with country code from countryList
      maxResults: '24',
      key: config.youtubeApi.key
    };
    let result = [];
    let promises = [];
    return axios.get('/', {params}).then(function(res){
      result = res.data.items;
      for (var i = 0; i < result.length; i++) {
          result[i] = {
              id: result[i].id,
              title: result[i].snippet.title,
              thumbnail: result[i].snippet.thumbnails.high.url,
              publishedAt: moment(result[i].snippet.publishedAt).fromNow()
          };
          promises.push(YoutubeService.getVideoDetails(result[i]));
      }
        return Promise.all(promises);
    });
  }

  static getVideoDetails(video) {
    let params = {
      part: 'statistics',
      id: video.id,
      key: config.youtubeApi.key
    };

    return axios.get('/', {params}).then(function(res) {
      let result = res.data;
      video.viewCount = result['items'][0].statistics.viewCount;
      video.likeCount = result['items'][0].statistics.likeCount;
      return video;
    });
  }
}

我遇到以下问题:

expected {} to be an object

我该如何解决?我是 Mocha 和 Chai 测试的新手,在此先感谢。

标签: javascriptexpresspromisemocha.jschai

解决方案


推荐阅读