说说我是怎么在Eclipse下导入gradle项目的,编写一个新的helloworld测试用例

前言

  • 最近在跟着一个springboot的开发教程在学。但是他不是用的主流的maven工程建的项目,而是用的gradle。因为没有用过gradle,所以为了按照他讲的内容来系统学一下,只能把gradle学一学了。在他课程里,跳跃的也很快的,在利用Eclipse插件编写gradle项目的时候,他是直接已经打开了项目了,却没有介绍,是如何把项目导入进去的。一脸懵逼,只能自己去网上先学下Eclipse是如何把项目导入进去的。
  • 网上也有很多教程,也参照的一下 ,下面是我如何导入成功的一个过程记录。一方面自己以后回头查看。

软件插件版本

  • eclipse : Oxygen.3a Release (4.7.3a)
  • gradle:4.9
  • jdk :1.8.0_151

Eclipse可以导入项目的前提

  • 安装有gradle的插件
  • gradle插件 需要配置本地的gradle安装路径
  • 是gradle的工程项目

导入gradle项目的步骤

  • 安装gradle插件 (自带了有可以忽视此步)
    • 这里用的是Eclipse在线安装。跟Eclipse安装其他的插件一样,
      首先是在help->enterMartketplace->在搜索框中输入gradle->go即可


      image.png

      然后在eclipse中配置本地的gradle
      步骤:eclipse中的window中的Preference,找到Gradle,然后如下如配置本地gradle的安装路径,点击apply


      image.png
  • gradle工程项目
    • 1.接着上一篇文章的项目intiallizr-start所在的文件夹:D:\gradle-work的路径下
      再新建一个hello-world文件夹。
      然后再把intiallizr-start文件下的先关文件拷贝过去,如下如所示
      image.png
    • 2.接着修改hello-world下的文件build.gradle和setting.gradle
      build.gradle是只修改一处:修改jar的版本号。目的是为了方便java编译运行的时候输入方便,不用写这么长


      image.png

修改setting.gradle 文件:目的是为了更改项目名称为对应的名字,这里是更改为hello-world


image.png
  • 3.上面的文件更改完成后,下面就是通过命令窗口输入命令行进行build和编译运行。首先是在hello-world目录下打开cmd命令窗口
    然后输入 gradle build。点击确定进行项目构建。然后在输入
    java -jar build/libs/hello-world-1.0.0.jar对项目进行编译运行,就能够看到springboot的图标和Tomcat的8080端口。那么到此步,eclipse的导入需要的gradle项目完成
  • 最后一步是利用eclipse导入gradle项目
    点击file下的import,然后选择Existing Gradle Project


    image.png

    然后下一步next,next,填写刚才创建的gradle项目,如下图


    image.png

    然后点击finish即可自动完成该项目所需要的jar包和导入gradle项目了
    如下图:
    image.png
  • 下面是导入gradle的项目结构,如下图,这里我把原来的包名和启动类名称改了一下


    image.png

然后再新建一个controller包,再该包下新建一个HelloWorldController类
如下

package com.waylau.spring.boot.blog.controller;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

/**   
 * perform:执行一个RequestBuilder请求,会自动执行SpringMVC的流程并映射到   
 * 相应的控制器执行处理;
 * andExpect:添加ResultMatcher验证规则,验证控制器执行完成后结果是否正确;
 * @author: crj
 * @date: 2018年8月20日 下午4:35:55 
 */
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc //为了注入MockMvc
public class HelloWorldControllerTest {
    @Autowired
    private MockMvc mockMvc;//这里是利用MockMvc这个来测试
    @Test
    public void testHello() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(org.springframework.http.MediaType.APPLICATION_JSON))
        .andExpect(status().isOk())
        .andExpect(content().string(equalTo("hello world!")));
    }

}

在这里在恶补一下MockMvc的知识
文章链接

随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的。从Spring 3.2开始Spring了Spring Web测试框架,Spring MVC测试框架提供了对服务器端和客户端(基于RestTemplate的客户端)提供了支持。

对于服务器端:在Spring 3.2之前,我们测试时一般都是直接new控制器,注入依赖,然后判断返回值。

package com.gtyyx.dao;

import static org.junit.Assert.assertEquals;

import java.util.UUID;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import com.gtyyx.model.UserLogin;

/**   
 * @author: crj
 * @date: 2018年8月16日 上午10:00:15 
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserLoginMapperTest {
    @Autowired
    private UserLoginMapper userLoginmapper;
     @Test
     public void test1() throws Exception {
         UserLogin user = new UserLogin();
         user.setTusername("wsl1");
         user.setTuserordrowid(UUID.randomUUID().toString());
         user.setTuserpassword("123456");
         int effectedNum = userLoginmapper.insert(user);
            assertEquals(1,effectedNum);
         
     }
    

}

但是我们无法连同Spring MVC的基础设施(如DispatcherServlet调度、类型转换、数据绑定、拦截器等)一起测试,另外也没有现成的方法测试如最终渲染的视图(@ResponseBody生成的JSON/XML、JSP、Velocity等)内容是否正确。从Spring 3.2开始这些事情都可以完成了。而且可以测试完整的Spring MVC流程,即从URL请求到控制器处理,再到视图渲染都可以测试。下面是上面HelloWorldController的测试用例

package com.waylau.spring.boot.blog.controller;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

/**   
 * @author: crj
 * @date: 2018年8月20日 下午4:35:55 
 */
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class HelloWorldControllerTest {
    @Autowired
    private MockMvc mockMvc;
    @Test
    public void testHello() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(org.springframework.http.MediaType.APPLICATION_JSON))
        .andExpect(status().isOk())
        .andExpect(content().string(equalTo("hello world!")));
    }

}

运行hello-worldd的方式

  • java -jar build/libs/hello-world-1.0.0.jar
  • gradle bootRun
  • gradlew bootRun
  • eclipse 下运行Application.java主文件

以上上面的记录都是根据学习老卫的springboot视频教程的所做的,仅当学习所用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,748评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,512评论 25 707
  • “公子,老爷在祠堂等你呢。” “好,知道了。” 李涛卸了披风,交到了李儒的手上,便大步朝着祠堂走去。快走到门口时,...
    小小闷骚阅读 485评论 0 1
  • 俨,我害怕,害怕死亡,害怕一切都消失,害怕没有思想,害怕没有意识,好害怕,你在哪里,我的你在哪里。。。。你不属于我...
    写给我的她阅读 221评论 0 0