首页 > 其他分享 >Typescript 测试驱动开发 TDD (14)

Typescript 测试驱动开发 TDD (14)

时间:2023-09-22 15:00:31浏览次数:41  
标签:10 functionToBeMocked 14 TDD Typescript 测试 MyMockedClass 返回值 模拟

返回值的监视器  (Spies returning values)

当我们希望模拟函数的返回值时,我们可以轻松地从模拟实现中返回一个值。作为示例,请考虑以下类:

1 class MyMockedClass {
2     functionToBeMocked(): number {
3          return 5;    
4     }
5 }

在这里,我们有一个名为MyMockedClass的类,它有一个名为functionToBeMocked的单个函数,返回值是5。我们可以通过以下方式用模拟实现来覆盖这个返回值:

1 it("should return value from mocked", () => {
2     let myMockedClass = new MyMockedClass();
3     jest.spyOn(myMockedClass, 'functionToBeMocked')
4          .mockImplementation((): number => {
5                return 10;
6          });
7 
8     expect(myMockedClass.functionToBeMocked()).toEqual(10);
9 });

在这里,我们的测试创建了一个名为myMockedClass的MyMockedClass实例,并对functionToBeMocked函数进行了间谍操作。我们模拟实现了这个函数,返回值为10。然后,我们的测试期望functionToBeMocked方法返回值为10。正如预期的那样,这个测试将通过,因为我们用返回值为10的模拟实现替换了原始方法实现中返回值为5的部分。

从模拟实现中返回值意味着我们可以在测试中模拟与其他系统的任何类型的外部交互。我们可以模拟对数据库或REST端点的调用,并注入标准值进行测试。

 

标签:10,functionToBeMocked,14,TDD,Typescript,测试,MyMockedClass,返回值,模拟
From: https://www.cnblogs.com/bisslot/p/17722183.html

相关文章

  • Typescript 测试驱动开发 TDD (13)
    Jest监视器 (Jestspies)Jest还提供了一种能够检查特定类方法是否被调用的能力,使用的是所谓的spy。考虑以下类定义:1classMySpiedClass{2testFunction(){3console.log(`testFunction()called`);4this.testSpiedFunction();5}6testSp......
  • Typescript 测试驱动开发 TDD (12)
    Jest模拟(Jestmocks)在测试我们的代码时,我们经常遇到这样的情况:我们希望确保某个特定函数被调用,或者它被使用正确的参数进行了调用。当一个特定函数按顺序调用其他函数以执行一些业务逻辑时,这种情况最常见。例如,我们可能会调用一个初始化函数,并且该初始化函数可能会调用多个RES......
  • currently, chromedriver 114.0.5735.90 is recommended for chrome 114.*, so it is
    报错原因是驱动和浏览器不匹配解决办法1.下载低版本的谷歌浏览器  本次使用的是114  下载地址:https://downzen.com/en/windows/google-chrome/download/11405735199/  2.下载谷歌浏览器的插件https://registry.npmmirror.com/binary.html?path=chromedriver/114.......
  • 041802114金晶的自我介绍~
    我的学号041802114;我是退役大学生士兵金晶,在部队是一名医疗救护员;我的爱好是运动还有看书;推荐紫荆园二楼的漳州鸭面;最近常听的歌我推荐一首lauv的《parisintherain》;想要说些什么呢,那就是“勇敢的人先享受世界”......
  • Typescript 测试驱动开发 TDD (10)
    测试设置和拆卸(Testsetupandteardown)在运行特定的测试之前,我们可能希望先执行一些代码。这可能是为了初始化一个特定的变量,或者确保对象的依赖关系已经设置好。同样地,我们可能希望在特定的测试运行后执行一些代码,甚至在整个测试套件运行完毕后执行。为了说明这一点,请考虑......
  • typescript_error_运算符“+”不能应用于类型“Number”和“Number”
    functionadd_(num1:Number,num2:Number){returnnum1+num2}console.log(add_(5,7))Number是一个Interface,number才是表示类型,换成小写就可以了functionadd_(num1:number,num2:number){returnnum1+num2}console.log(add_(5,7))......
  • golang 有没有 类似 typescript 的 联合类型?
    Go语言(Golang)不像TypeScript那样直接支持联合类型(UnionTypes)。在TypeScript中,联合类型允许一个变量具有多个不同的数据类型,而在Go中,通常使用接口(interfaces)和具体类型来处理类似的情况。以下是在Go中处理联合类型的一些方法:使用接口:Go中的接口可以用于定义一组方法的契约,而不是特......
  • 题解 ARC141D【Non-divisible Set】
    这个题不是网络流。problem我们说一个集合\(D\)是一个好的集合,当不存在集合中的两个不同元素\(a,b\)使得\(a\)是\(b\)的约数。给定\(N\)个整数的一个集合\(S\),值域均落在\([1,2*M]\)内。对\(S\)中的每个元素\(A_i\)询问:是否存在一个恰好包含\(A_i\)的\(......
  • Ubuntu Server 14.04 LTS 设置静态IP地址
    IP地址以及网关修改、修改文件/etc/network/interfacessudovim/etc/network/interfaces对应作如下修改:autoeth0ifaceeth0inetstatic##原来的内容为ifaceeth0inetdhcpaddress192.168.0.117gateway192.168.0.1#这个地址你要确认下网关是不是这个地址net......
  • drf-day14
    频率源码分析频率源码APIView----disaptch---》self.initial(request,*args,**kwargs)---》416行:self.check_throttles(request)----》352行check_throttlesdefcheck_throttles(self,request):#self.get_throttles()就是咱们配置在视图类上频率类的对......