[发明专利]一种JS代码的测试方法、存储介质、设备和系统有效
申请号: | 201810024354.8 | 申请日: | 2018-01-10 |
公开(公告)号: | CN110018952B | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 周志刚;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 张凯 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 js 代码 测试 方法 存储 介质 设备 系统 | ||
1.一种JS代码的测试方法,其用于测试JS代码是否正确,其特征在于,包括步骤:
在JS代码中集成JS引擎,并编写一用于执行JS代码的JS引擎接口,调用JS引擎接口得到JS代码的执行结果;
编写与所述JS代码功能相同的编译型语言代码,并执行所述编译型语言代码,获得该编译型语言代码的执行结果;
比较JS代码的执行结果和编译型语言代码的执行结果是否一致,并根据比较结果判断所述JS代码是否正确,具体的,将JS引擎接口执行JS代码得到的result1值,与执行编译型语言代码得到的result1值进行比对,来判断JS代码是否正确;
其中,创建一个隔离区,标示创建一个V8引擎的实例,每个实例是相互独立的,不共享变量;在调用JS引擎接口得到JS代码的执行结果时,获取全局管理对象,通过变量的名称得到变量的值;获取变量的名称,从而实现调用JS引擎接口得到该JS代码的执行结果。
2.如权利要求1所述的JS代码的测试方法,其特征在于:编写一用于执行JS代码的JS引擎接口的具体步骤为:创建JS引擎的全局初始化和环境;创建隔离区;设置JS引擎独立运行的环境;管理本地的Handle对象;创建运行的上下文;创建字符串转换对象;编译原始的JS代码;执行编译好的JS代码。
3.如权利要求1所述的JS代码的测试方法,其特征在于:所述JS引擎为V8引擎。
4.如权利要求1所述的JS代码的测试方法,其特征在于:所述编译型语言代码为C语言代码。
5.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至4中任一项所述方法的步骤。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至4中任一项所述方法的步骤。
7.一种JS代码的测试系统,其特征在于:所述系统包括第一模块、第二模块和比较模块;
所述第一模块用于在JS代码中集成JS引擎,并编写一用于执行JS代码的JS引擎接口,调用JS引擎接口得到JS代码的执行结果;
所述第二模块用于编写与待测试JS代码功能相同的编译型语言代码,并执行所述编译型语言代码,获得该编译型语言代码的执行结果;
所述比较模块用于比较JS代码的执行结果和编译型语言代码的执行结果是否一致,并根据比较结果判断所述JS代码是否正确,具体的,将JS引擎接口执行JS代码得到的result1值,与执行编译型语言代码得到的result1值进行比对,来判断JS代码是否正确;
其中,创建一个隔离区,标示创建一个V8引擎的实例,每个实例是相互独立的,不共享变量;在调用JS引擎接口得到JS代码的执行结果时,获取全局管理对象,通过变量的名称得到变量的值;获取变量的名称,从而实现调用JS引擎接口得到该JS代码的执行结果。
8.如权利要求7所述的JS代码的测试系统,其特征在于:所述第一模块包括创建单元、设置单元、管理单元、编译单元和执行单元;
所述创建单元用于创建JS引擎的全局初始化和环境,并创建隔离区,还用于创建运行的上下文,并创建字符串转换对象;
所述设置单元用于设置JS引擎独立运行的环境;
所述管理单元用于管理本地的Handle对象;
所述编译单元用于编译原始的JS代码;
所述执行单元用于执行编译好的JS代码。
9.如权利要求7所述的JS代码的测试系统,其特征在于:所述JS引擎为V8引擎。
10.如权利要求7所述的JS代码的测试系统,其特征在于:所述编译型语言代码为C语言代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810024354.8/1.html,转载请声明来源钻瓜专利网。