Javascript 自定义测试函数-JS

Javascript 自定义测试函数-JS,javascript,typescript,Javascript,Typescript,我想创建一个如下所示的函数。 这是jest的预期功能。我想用Javascript创建这个函数 这能行吗 let type = 'apple' expect(type).toBe('apple') //pass a string to "expect" function and it checks with 'toBe' function if the string is similar 更新:我知道我们可以做下面这样的事情,但我不能做这样的事情“expect().t

我想创建一个如下所示的函数。
这是jest的预期功能。我想用Javascript创建这个函数
这能行吗

let type = 'apple'
expect(type).toBe('apple')  

//pass a string to "expect" function and it checks with 'toBe' function if the string is similar

更新:我知道我们可以做下面这样的事情,但我不能做这样的事情“expect().toBe()”


这只是一个小例子,你可能会去。您希望
expect
是一个返回对象的函数,其中一个键
toBe
是一个函数。在本例中,我只是让它返回
true
false
,这取决于实际值是否等于预期值

功能预期(实际){
返回{
toBe:功能(预期){
返回实际值===预期值;
}
}
}
console.log(
期望(“foo”)。托比(“foo”)
);
console.log(
期望(“foo”)。托比(“bar”)

);这只是一个很小的示例,说明您可能要做什么。您希望
expect
是一个返回对象的函数,其中一个键
toBe
是一个函数。在本例中,我只是让它返回
true
false
,这取决于实际值是否等于预期值

功能预期(实际){
返回{
toBe:功能(预期){
返回实际值===预期值;
}
}
}
console.log(
期望(“foo”)。托比(“foo”)
);
console.log(
期望(“foo”)。托比(“bar”)

);建议不要重新发明轮子,但既然你已经做到了,下面是我的简单建议:

  • 函数
    expect()
  • 函数
    toBe()
    第二件事
    (也称为预期)作为参数,对
    第一件事
    使用某种形式的比较器,并返回布尔值
  • 为简单起见,比较器可以是
    ==
基于这三个元素,您重新发明的
expect()
函数可以采用以下形状:

函数预期(实际){
返回{
toBe:功能(预期){
返回实际值==预期值;
}
}
}
  • 对于的实际实现,实际实现比这个答案稍微复杂一些
  • “匹配者”(他们称之为
    toBe()
    toEqual()
    ,等等)可以

建议不要重新发明轮子,但既然你已经做到了,下面简单介绍一下我的建议:

  • 函数
    expect()
  • 函数
    toBe()
    第二件事
    (也称为预期)作为参数,对
    第一件事
    使用某种形式的比较器,并返回布尔值
  • 为简单起见,比较器可以是
    ==
基于这三个元素,您重新发明的
expect()
函数可以采用以下形状:

函数预期(实际){
返回{
toBe:功能(预期){
返回实际值==预期值;
}
}
}
  • 对于的实际实现,实际实现比这个答案稍微复杂一些
  • “匹配者”(他们称之为
    toBe()
    toEqual()
    ,等等)可以

是的,这是可行的。到目前为止你试过什么?这个函数的期望输出是什么?Jest是用JavaScript编写的,所以是的,它当然是可行的。@Nick请检查更新。如何向函数中添加模块?是的,这是可行的。到目前为止你试过什么?这个函数的期望输出是什么?Jest是用JavaScript编写的,所以是的,它当然是可行的。@Nick请检查更新。如何向函数中添加模块?
  var Expect = Expect || {};

  Expect.String = function() {
  var toBe = "tobe";

    var toBe = function() {
      console.log("toBE function");
    };

    return {
      toBe: toBe
    }
  }()

Expect.String.toBe(); // this will log "toBe function"