javascript - 用 jest 测试函数

标签 javascript unit-testing jestjs

如何使用 jest 测试如下所示的函数?

lightboxUrl: function () {
    var componentId = this.options.componentId
    if (componentId) {
      var album = this.model.get('album')

      var shortcut = this.model.get('shortcut')
      return '/lightbox/' + componentId + '/' + album + '/' + shortcut
    }
  }

JavaScript 测试新手。非常感谢任何帮助。如果您还需要任何其他信息,请告诉我。

最佳答案

我只是假设并删除了一些未提供的细节。

这是灯箱项目

export default function lightboxParent(componentId) {
 return {
  options: {
   componentId,
  },
  model: {
   get: id => (id === "album" ? "album" : "shortcut"),
  },
  lightboxUrl: function() {
   var componentId = this.options.componentId;
   if (componentId) {
    var album = this.model.get("album");

    var shortcut = this.model.get("shortcut");
    return "/lightbox/" + componentId + "/" + album + "/" + shortcut;
   }
  }
 }
}

这是 Jest 测试

describe("lightbox url", () => {
  it("should be valid url", () => {
    expect(lightboxParent(1).lightboxUrl()).toBe(
      "/lightbox/1/album/shortcut"
    );
  });
  it("should not resolve valid url, no componentId", () => {
    expect(lightboxParent().lightboxUrl()).toBe(undefined);
  });
});

我为此使用了codesandbox,https://codesandbox.io/s/n4mlqkr4qj

这是一个基本测试,只是检查 lightboxUrl 方法返回的 url,或者如果没有 componentId,则它是 未定义,因为我提供了整个 src我只是保留了一些基本的假设

关于javascript - 用 jest 测试函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52137054/

相关文章:

javascript - 如何使用 Jasmine 在 AngularJS 中为数组函数创建单元测试

Angular 2 单元测试路由器导航

ios - 良好的 OCUnit/XCode 单元测试测试运行器

reactjs - Jest 与酵素 |接收值必须是一个函数,接收未定义

javascript - 如何在 Angular JS 中使用带有 Http 请求的服务

javascript - (图像渐变器)淡化颜色和 1 次重复淡化

javascript - 期望对象具有所有给定的属性

javascript - Jest 单元测试函数抛出错误

javascript - 禁用 angularJs 路由,routeprovider 已经消失

javascript - 获得均匀采样 "chain"项的数学完美方法