[发明专利]提高代码可测试性的方法、系统、可读存储介质及服务器在审
申请号: | 201710854463.8 | 申请日: | 2017-09-20 |
公开(公告)号: | CN107621965A | 公开(公告)日: | 2018-01-23 |
发明(设计)人: | 高四辈 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 提高 代码 测试 方法 系统 可读 存储 介质 服务器 | ||
技术领域
本发明涉及软件测试技术领域,特别是涉及一种提高代码可测试性的方法、系统、可读存储介质及服务器。
背景技术
随着软件工程的不断发展,一个软件,甚至软件中的一个模块都需要成百上千个类相互协作才能完成最终的功能。为了保证每个类的代码均可以实现其自身的逻辑,需要对每个类的代码进行单元测试,单元测试的结果要符合预期的返回值,若不符合,则说明代码编写有错误,以提醒程序员及时对错误的代码进行修改,避免软件的整个程序出现问题,无法运行。
但是各个类之间存在依赖关系,例如某一模块中的类A依赖于另一模块中的类B,即类B所属的模块为不可修改的第三方库,类B不可控,因此类B向类A返回的结果是不确定的、未知的,类A的可测试性难以保障,进而导致对软件后期进行拓展和维护的难度大。
因此如何提供一种解决上述技术问题的方案,是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种提高代码可测试性的方法,在提高了类A的代码可测试性的同时,降低了类A和类B之间的耦合性,也降低了对软件后期进行拓展和维护的难度;本发明的另一目的是提供一种提高代码可测试性的系统、可读存储介质及服务器。
为解决上述技术问题,本发明提供了一种提高代码可测试性的方法,包括:
对类B的所有方法进行封装得到代理类,将所述代理类增加到类A的代码中,并将所述代理类的每个方法声明为虚拟virtual,其中,所述类A依赖于所述类B;
将所述类A中依赖于所述类B的代码修改为依赖于所述代理类;
使用虚拟类继承所述代理类,以便所述类A通过所述虚拟类进行单元测试。
优选的,所述类A通过所述虚拟类进行单元测试之后,该方法还包括:
检验所述类A的单元测试结果是否符合预期的返回值;
若否,则判定所述类A的代码编写有误。
优选的,所述代理类为Proxy类。
优选的,所述虚拟类为Mock类。
为解决上述技术问题,本发明还提供了一种提高代码可测试性的系统,包括:
封装模块,用于对类B的所有方法进行封装得到代理类,将所述代理类增加到类A的代码中,并将所述代理类的每个方法声明为虚拟virtual,其中,所述类A依赖于所述类B;
修改模块,用于将所述类A中依赖于所述类B的代码修改为依赖于所述代理类;
测试模块,用于使用虚拟类继承所述代理类,以便所述类A通过所述虚拟类进行单元测试。
优选的,所述类A通过所述虚拟类进行单元测试之后,该系统还包括检测模块,用于检验所述类A的单元测试结果是否符合预期的返回值;
若否,则判定所述类A的代码编写有误。
优选的,所述代理类为Proxy类。
优选的,所述虚拟类为Mock类。
为解决上述技术问题,本发明还提供了一种可读存储介质,应用于计算机,其上存储有计算机程序,所述计算机程序执行时实现如上述任意一项所述的方法。
为解决上述技术问题,本发明还提供了一种服务器,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时,实现如上述任意一项所述的方法。
本发明提供了一种提高代码可测试性的方法,包括对类B的所有方法进行封装得到代理类,将代理类增加到类A的代码中,并将代理类的每个方法声明为虚拟virtual,其中,类A依赖于类B;将类A中依赖于类B的代码修改为依赖于代理类;使用虚拟类继承代理类,以便类A通过虚拟类进行单元测试。
可见,在实际应用中,在类A和类B之间增加代理类,使得类A不直接依赖于类B,且代理类可控,继承了代理类的虚拟类可以修改,使类A可以返回确定的值,所以类A通过虚拟类就可以进行单元测试,在提高了类A的代码可测试性的同时,降低了类A和类B之间的耦合性,也降低了对软件后期进行拓展和维护的难度。
本发明还提供了一种提高代码可测试性的系统、可读存储介质及服务器,具有和上述方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种提高代码可测试性方法的流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710854463.8/2.html,转载请声明来源钻瓜专利网。