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

存根是系统中现有依赖关系(或协作者)的可控替换。通过使用存根,您可以测试代码,而无需直接处理依赖关系。
外部依赖关系-现有依赖关系:
它是系统中的一个对象,被测试代码与之交互,您无法控制它。(常见的示例有文件系统、线程、内存、时间等。)
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.

在此上下文中,stub表示模拟实现。
也就是说,一个简单的,假的实现,符合接口,并用于测试。
外行的术语,它是虚拟数据(或假数据,测试数据等),您可以使用它来测试或开发您的代码,直到您(或另一方)准备好呈现 / 接收真实数据。这是程序员的“Lorem Ipsum”。
Employee database not ready?用 Jane Doe,John Doe...etc.API not ready 组成一个简单的?通过创建包含假数据的静态.json 文件来组成一个假的

在这种情况下,使用“存根”一词代替“模拟”,但是为了清楚和精确起见,作者应该使用“模拟”,因为“模拟”是一种存根,但是为了避免进一步的混淆,我们需要定义什么是存根。
在一般上下文中,存根是一段程序 (通常是一个函数或一个对象),它封装了调用另一个程序 (通常位于另一台机器、虚拟机或进程上,但不总是,它也可以是一个本地对象) 的复杂性。因为要调用的实际程序通常不位于同一内存空间上,所以调用它需要许多操作,例如寻址、在实际的远程调用中执行代理、甚至用可能传递的相同的数据 / 参数 (
在任何情况下,模拟都可以模拟被替换程序在受限环境中的实际行为。
当需要调用远程过程 (RPC) 或远程对象 (RMI,CORBA) 时,最著名的存根类型显然是用于分布式编程。大多数分布式编程框架 / 库可以自动生成存根接口,因此您不必手动编写它们。
通常,在 RPC,RMI,CORBA 等中,人们会区分客户端存根,它们主要负责封送 / 序列化参数并执行远程调用,以及服务器端存根,它们主要负责解除封送 / 反序列化参数并实际执行远程函数 / 方法。显然,客户端存根位于客户端(通常称为骨架),而
在处理对象引用时,编写高效和通用的存根变得非常具有挑战性。大多数分布式对象框架,如 RMI 和 CORBA,都处理分布式对象引用,但这是大多数程序员在 REST 环境中避免的。通常,在 REST 环境中,JavaScript 程序员会创建简单的存根函数来封装 AJAX 调用(JSON.p
和JSON.stringify
支持对象序列化,以自动生成各种语言。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(20条)