感谢支持
我们一直在努力

Gradle – 简单测试驱动Web程序

Gradle – 简单测试驱动Web程序

# 平台 Ubuntu Linux
# 工程名称(顶级目录名)tdd
# 使用到的jar包
servlet-api.jar
org.springframework.core-3.0.4.RELEASE.jar
commons-logging-1.0.4.jar
spring-mock.jar

一、实现一个基于servlet以纯文本回显请求参数的例子。
1)编写EchoServlet代码
因为需要用到gradle来实现自动化构建,所以遵循gradle中Java工程的目录约定。

> mkdir -p src/main/java/com/thoughtworks/servlet
> cd src/main/java/com/thoughtworks/servlet
> touch EchoServlet.java

 

    package com.thoughtworks.servlet;

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Enumeration;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class EchoServlet  extends HttpServlet{
   
        @Override
        public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            response.setHeader(“Content-Type”, “text/plain”); //设置纯文本响应头
            PrintWriter writer = response.getWriter();
            Enumeration e = request.getParameterNames();      // 获取请求参数名
            while(e.hasMoreElements()) {
                String name = String.valueOf(e.nextElement());
                String[] values = request.getParameterValues(name);
                for(String v : values) {
                    writer.write(name+”=”+v);
                    writer.write(“\n”);
                }
            }
            writer.close();
        }
    }

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/92610p2.htm

Gradle 的详细介绍:请点这里
Gradle 的下载地址:请点这里

相关阅读:

Gradle创建项目目录结构 http://www.linuxidc.com/Linux/2012-07/64177.htm

Gradle 打包 Groovy 脚本成 jar与上传到maven repository http://www.linuxidc.com/Linux/2012-07/64178.htm

Gradle 构建 Android 应用常见问题解决指南 http://www.linuxidc.com/Linux/2013-10/90807.htm

2)编写EchoServlet单元测试用例

遵循gradle标准,故:

> mkdir -p src/test/Java/com/thoughtworks/servlet/
> cd src/test/java/com/thoughtworks/servlet/
> touch EchoServletTest.java

    package com.thoughtworks.servlet;

    import static org.junit.Assert.*;

    import org.junit.Test;
    import org.springframework.mock.web.MockHttpServletRequest;
    import org.springframework.mock.web.MockHttpServletResponse;

    public class EchoServletTest {
   
        @Test
        public void testEchoingParametersWithMultipleValues() throws Exception {
            MockHttpServletRequest request = new MockHttpServletRequest();
            MockHttpServletResponse response = new MockHttpServletResponse();
       
            request.addParameter(“param1”, “value1”);
            request.addParameter(“param2”, “value2”);
            request.addParameter(“param3”, “value3”);
       
            new EchoServlet().doGet(request, response);
       
            String[] lines = response.getContentAsString().split(“\n”);
       
            assertEquals(“Expected as many lines as We have parameter values”,
                    3, lines.length);
            assertEquals(“param1=value1”, lines[0]);
            assertEquals(“param2=value2”, lines[1]);
            assertEquals(“param3=value3”, lines[2]);
       
        }
    }

3)编写gradle的配置文件 build.gradle

    apply plugin: ‘idea’
    apply plugin: ‘java’

    repositories {
        mavenCentral()
    }

    dependencies {
        compile fileTree(dir: ‘libs’, include: ‘*.jar’)
        testCompile ‘junit:junit:4.11’
    }

以上代码使用可参考我的《Gradle-使用介绍》  http://www.linuxidc.com/Linux/2013-11/92611.htm

这里dir: ‘libs’加载本地的jar文件
> mkdir libs
然后将开头处提及的jar包放到libs目录下。

4) 运行gradle命令

> gradle build.gradle

:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build UP-TO-DATE
BUILD SUCCESSFUL

Total time: 7.091 secs

生成和src/同级的build目录
build/
|- classes/
|- dependency-cache/
|- libs/
|- reports/
|- test-results/
|- tmp/

这里注意apply plugin: ‘idea’
指的是可以构建IntelliJ的idea工程。
> gradle idea
生成三个文件和一个目录
tdd.iml
tdd.ipr
tdd.iws
out/
|- production/
|- test/

之后可以通过IntelliJ open选项打开tdd工程。
到此就完成了使用gradle自动化构建servlet请求参数以文本形式回显的java工程。

赞(0) 打赏
转载请注明出处:服务器评测 » Gradle – 简单测试驱动Web程序
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏