当前位置:主页 > 云存储 > 国际 >

网站服务器_图形数据库_好用

  • 国际
  • 2021-07-14 11:04
  • 动埠云

在本教程中,我们将概述如何测试使用sapcloudsdk编写的应用程序。要获得完整的概述,请访问SAP Cloud SDK概述。

一般来说,有多种测试,主要是在测试的粒度上进行区分,它们都有各自的优缺点。一种常见的可视化方法是测试金字塔。基于测试的成本,它显示您应该有比集成测试更多的单元测试,而不是E2E(端到端)测试。随着金字塔向上移动,创建、运行和维护的成本会增加。

例如,端到端(E2E)测试在用户界面级别上运行。测试执行者通过用户界面自动单击,断言应用程序以期望的方式运行。在这个级别上进行的测试表明应用程序的特性正在工作。例如,您可以对每个特性或用户故事进行一次E2E测试。然而,E2E测试的编写和执行成本很高。E2E测试与浏览器交互。这是昂贵的,因为启动浏览器需要时间,浏览器会加载和呈现大量资源。此外,通常很难指定与浏览器的交互方式,使其能够处理应用程序用户界面结构中较小的更改。此外,E2E测试有时是片状的。模仿与浏览器的交互很容易出错。加载时间和异步行为不断变化的浏览器创建了一个非常不稳定的环境,这对测试是一个不利的条件。因此,您应该将它们的数量限制为未经其他测试的功能的合理子集。至少大部分功能应该已经通过单元和集成测试进行了测试。

集成测试降低了复杂性。它们跳过用户界面,直接在定义的后端api上工作。它们测试软件模块或系统之间的集成。在我们的示例中,我们主要使用它们来测试后端服务之间的集成以及与saps/4HANA系统的集成。尽管它们的复杂性降低了,但它们的成本仍然适中。它们仍然有开销,例如,用于网络通信或生成一个小型服务器以使后端api可用。您应该使用它们来验证您的后端服务是否可以与SAP S4HANA系统通信,并测试服务的行为是否符合用户界面的预期。

单元测试的粒度最小。它们可以直接在编程级别定义,例如,大数据数据采集,调用java类的方法。可以模拟对其他模块或系统的依赖关系,以确保它们运行得非常快,并且只测试正在考虑的部分。这些测试通常很便宜。您应该使用它们来验证您的软件模块(如类)是否按预期运行。

在本教程中,我们将演示如何为您的应用程序编写测试。我们将以自动生成管道可以执行它们的方式编写测试。最后,您应该能够为您的应用程序编写以下类型的测试:

对于后端服务的模块,我们建议您编写JUnit测试。原型已经包含一个称为单元测试的子模块。请将单元测试放在那里。它们位于一个单独的模块中,以便于管道单独执行它们。此外,它还避免了测试依赖关系意外地成为应用程序的一部分。此模块已经包含JUnit依赖项。

单元测试应该非常轻量级。他们应该以隔离的方式测试模块,例如类。其他依赖的模块,甚至对外部目的地的调用,比如ERP系统,可能会被模仿。对于mocking,sapcloudsdk提供了MockUtil类的mocking工具。此外,我们建议使用模拟框架,iot物联网,如mockito或powermock。

查看步骤19:模拟S/4HANA调用,了解更多有关SAP Cloud SDK如何使模拟对SAP S/4HANA系统的偶数调用变得容易的信息。

在集成测试中,您可以在不使用前端应用程序的情况下测试后端服务。在步骤2、3和4中,我们已经介绍了集成测试并演示了如何设置它们。通常,企业管理软件公司,我们建议使用Arquillian生成一个小型服务器,其中只包含要测试的特定后端服务的资源。这比先将其部署到SAP云平台,然后针对部署的版本进行测试要快。此外,您仍然有可能影响测试执行,例如通过模拟或收集测试覆盖率数据。对于spring,我们建议使用SpringRunner。对于两者,有一个示例测试已经包含在相应的原型中。

Mocking Basics

在本教程中,我们想重点介绍saps4hanacloudsdk提供的Mocking工具。当您在本地执行集成测试时,它们将在不同的环境中运行,而不是稍后在SAP云平台中运行。因此,许多服务(如目标服务)都不可用,因为SAP云平台在服务和运行时库方面提供了比本地测试环境更丰富的环境。必须在本地环境中部分复制此目标环境,在本地环境中模拟设施允许测试业务应用程序,而不依赖本地提供的服务。由于SAP Cloud SDK已经为这些服务提供了抽象,因此它还提供了在本地环境中模拟这些服务的功能。

例如,我们以SAP Cloud SDK第4步中的BusinessPartnerServiceTest:调用OData服务:

模拟的所有内容都位于SAP Cloud SDK中的MockUtil类中。关于接口和可用方法的信息可以在JavaDoc中找到。

猜你喜欢

微信公众号