Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services JavaServletWeb服务中的TDD_Web Services_Unit Testing_Servlets_Tdd_Integration Testing - Fatal编程技术网

Web services JavaServletWeb服务中的TDD

Web services JavaServletWeb服务中的TDD,web-services,unit-testing,servlets,tdd,integration-testing,Web Services,Unit Testing,Servlets,Tdd,Integration Testing,我已经知道如何编写JUnit测试用例(也可以使用Mockito)。谢谢你在网上提供的简单教程。唯一的问题是,我找不到任何将其应用于实际项目的例子 我有一个简单的RESTWeb服务,它使用servlet。它有一个API方法,向另一个web服务发送POST请求,然后将数据作为响应进行排列 API请求由两层处理: Servlet(控制器)-验证请求参数 服务-向其他web服务发送POST请求的发件人 以下是服务方法的作用: 准备参数数据(此请求的参数中提供了一些属性,有些属性从数据库中检索) 将请

我已经知道如何编写JUnit测试用例(也可以使用Mockito)。谢谢你在网上提供的简单教程。唯一的问题是,我找不到任何将其应用于实际项目的例子

我有一个简单的RESTWeb服务,它使用servlet。它有一个API方法,向另一个web服务发送POST请求,然后将数据作为响应进行排列

API请求由两层处理:

  • Servlet(控制器)-验证请求参数
  • 服务-向其他web服务发送POST请求的发件人
以下是服务方法的作用:

  • 准备参数数据(此请求的参数中提供了一些属性,有些属性从数据库中检索)
  • 将请求发送到另一个web服务,该web服务使用二维码的图像url进行响应
  • 解码QRCode图像,然后用解码文本响应其请求
  • 这需要哪些单元测试用例


    集成测试怎么样?我是否必须使用ServletUnit,或者我可以运行服务器并向运行中的服务器写入带有请求的测试?

    单元测试通常涉及单独测试单个类。因此,您需要对servlet类和服务类进行测试

    如果您对servlet的单元测试感兴趣,那么可以看看。在您的情况下,您需要模拟任何外部依赖项,并检查是否向服务方法发送了有效的参数

    单元测试服务方法包括模拟所有外部依赖项(web服务、数据库),仅测试方法中执行的逻辑(例如,正确准备数据、QR解码和使用正确文本响应)

    大多数情况下,您都会编写集成测试,因为您有多个组件需要协同工作。解决这个问题有多种可能的方法。您可以创建一个单独的集成测试环境,该环境尝试尽可能紧密地复制您的生产环境(web服务器、应用程序服务器、数据库)。对于较小的项目,可能需要太多的工作,您可以使用某种内存中的数据库(例如)启动一个嵌入式Tomcat。请记住,要使集成测试可重复,您可能必须为每次测试运行重新初始化数据库

    此外,您还提到了一个web服务,它通过URL响应二维码。如果您无法控制该服务,我也会尝试嘲笑该服务。您不希望集成测试失败,因为web服务可能在100%的时间内都不可用


    由于Servlet充当RESTful web服务,请看一看。这是用于测试REST服务的DSL。

    单元测试通常涉及单独测试单个类。因此,您需要对servlet类和服务类进行测试

    如果您对servlet的单元测试感兴趣,那么可以看看。在您的情况下,您需要模拟任何外部依赖项,并检查是否向服务方法发送了有效的参数

    单元测试服务方法包括模拟所有外部依赖项(web服务、数据库),仅测试方法中执行的逻辑(例如,正确准备数据、QR解码和使用正确文本响应)

    大多数情况下,您都会编写集成测试,因为您有多个组件需要协同工作。解决这个问题有多种可能的方法。您可以创建一个单独的集成测试环境,该环境尝试尽可能紧密地复制您的生产环境(web服务器、应用程序服务器、数据库)。对于较小的项目,可能需要太多的工作,您可以使用某种内存中的数据库(例如)启动一个嵌入式Tomcat。请记住,要使集成测试可重复,您可能必须为每次测试运行重新初始化数据库

    此外,您还提到了一个web服务,它通过URL响应二维码。如果您无法控制该服务,我也会尝试嘲笑该服务。您不希望集成测试失败,因为web服务可能在100%的时间内都不可用

    由于Servlet充当RESTful web服务,请看一看。这是一个用于测试REST服务的DSL