说说我是怎么在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视频教程的所做的,仅当学习所用。

你可能感兴趣的:(说说我是怎么在Eclipse下导入gradle项目的,编写一个新的helloworld测试用例)