“存根”在编程中是什么意思(function stub)

例如,这句话是什么意思?

例如,这句话是什么意思?

与外部 API 集成几乎是任何现代 Web 应用程序的保证。为了有效地测试这种集成,您需要存根。一个好的存根应该易于创建,并且始终与当前的实际 API 响应保持最新。在本文中,我们将概述使用存根作为外部 API 的测试策略。

138

存根是系统中现有依赖关系(或协作者)的可控替换。通过使用存根,您可以测试代码,而无需直接处理依赖关系。

外部依赖关系-现有依赖关系:
它是系统中的一个对象,被测试代码与之交互,您无法控制它。(常见的示例有文件系统、线程、内存、时间等。)

Forexample 在下面的代码中:

public void Analyze(string filename)
    {
        if(filename.Length>8)
        {
            try
            {
                errorService.LogError("long file entered named:" + filename);
            }
            catch (Exception e)
            {
                mailService.SendEMail("admin@hotmail.com", "ErrorOnWebService", "someerror");
            }
        }
    }

您想要测试mailService.SendEMail ()对象,但是要做到这一点,您需要在测试方法中模拟Exception,因此您只需要创建一个 Fake StuberrorService对象来模拟您想要的结果,那么您的测试代码将能够测试mailService.

121

在此上下文中,stub表示模拟实现。

也就是说,一个简单的,假的实现,符合接口,并用于测试。

76

外行的术语,它是虚拟数据(或假数据,测试数据等),您可以使用它来测试或开发您的代码,直到您(或另一方)准备好呈现 / 接收真实数据。这是程序员的“Lorem Ipsum”。

Employee database not ready?用 Jane Doe,John Doe...etc.API not ready 组成一个简单的?通过创建包含假数据的静态.json 文件来组成一个假的

13

在这种情况下,使用“存根”一词代替“模拟”,但是为了清楚和精确起见,作者应该使用“模拟”,因为“模拟”是一种存根,但是为了避免进一步的混淆,我们需要定义什么是存根。

在一般上下文中,存根是一段程序 (通常是一个函数或一个对象),它封装了调用另一个程序 (通常位于另一台机器、虚拟机或进程上,但不总是,它也可以是一个本地对象) 的复杂性。因为要调用的实际程序通常不位于同一内存空间上,所以调用它需要许多操作,例如寻址、在实际的远程调用中执行代理、甚至用可能传递的相同的数据 / 参数 (

在任何情况下,模拟都可以模拟被替换程序在受限环境中的实际行为。

当需要调用远程过程 (RPC) 或远程对象 (RMI,CORBA) 时,最著名的存根类型显然是用于分布式编程。大多数分布式编程框架 / 库可以自动生成存根接口,因此您不必手动编写它们。

通常,在 RPC,RMI,CORBA 等中,人们会区分客户端存根,它们主要负责封送 / 序列化参数并执行远程调用,以及服务器端存根,它们主要负责解除封送 / 反序列化参数并实际执行远程函数 / 方法。显然,客户端存根位于客户端(通常称为骨架),而

在处理对象引用时,编写高效和通用的存根变得非常具有挑战性。大多数分布式对象框架,如 RMI 和 CORBA,都处理分布式对象引用,但这是大多数程序员在 REST 环境中避免的。通常,在 REST 环境中,JavaScript 程序员会创建简单的存根函数来封装 AJAX 调用(JSON.parseJSON.stringify支持对象序列化,以自动生成各种语言。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(472)
如何在AWSEC2中重新下载pem文件
上一篇
返回的 mac地址对于不同的设备是相同的
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(56条)