国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

新人上路-搭建項目-springweb-controller測試

shiina / 1412人閱讀

摘要:新人上路搭建項目測試和配置測試最基本的依賴配置添加字符集過濾器解析返回數據靜態資源不做處理解析返回數據測試中文測試踩坑記錄測試中文測試尚未解決單元測試不知道怎么使用的配置最后代碼分支代碼分支

新人上路-搭建項目-springweb-controller測試 maven和gradle配置

測試controller最基本的依賴

maven

        
        
          org.springframework
          spring-webmvc
          ${spring.version}
        
        
          com.fasterxml.jackson.core
          jackson-databind
          ${jackson.version}
        
        

        
        
          javax.servlet
          javax.servlet-api
          3.1.0
          provided
        
        

        
        
          org.springframework
          spring-test
          ${spring.version}
          test
        
        
          org.mockito
          mockito-core
          ${mockito.version}
          test
        
        
          junit
          junit
          ${junit.version}
          test
        
        

gradle

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.boot:spring-boot-devtools")
    testCompile("org.springframework.boot:spring-boot-starter-test")
    testCompile("org.mockito:mockito-core:$mockitoVersion")
}

springmvc javaconfig配置

WebAppInitializer

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    protected Class[] getRootConfigClasses() {
    return new Class[]{ RootConfig.class };
    }

    protected Class[] getServletConfigClasses() {
    return new Class[]{ WebConfig.class };
    }

    protected String[] getServletMappings() {
    return new String[]{"/"};
    }

    /** 添加字符集過濾器 **/
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
    super.onStartup(servletContext);
    servletContext.addFilter("characterEncodingFilter",
        new CharacterEncodingFilter("utf-8", true))
        .addMappingForUrlPatterns(null, false, "/*");
    }
}

WebConfig

@Configuration
@EnableWebMvc
@ComponentScan("com.seal_de.controller")
public class WebConfig extends WebMvcConfigurerAdapter {
    /** 解析json返回數據 **/
    @Override
    public void configureMessageConverters(List> converters) {
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

    List mediaTypes = new ArrayList(converter.getSupportedMediaTypes());
    mediaTypes.addAll(Arrays.asList(MediaType.TEXT_PLAIN, MediaType.TEXT_HTML, MediaType.TEXT_XML));
    converter.setSupportedMediaTypes(mediaTypes);

    ObjectMapper objectMapper = converter.getObjectMapper();
    objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

    converters.add(converter);
    }

    /** 靜態資源不做處理 **/
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
    }
}

RootConfig

@Configuration
@ComponentScan(basePackages = {"com.seal_de"},
    excludeFilters={@ComponentScan.Filter(type= FilterType.ANNOTATION, value= EnableWebMvc.class)})
public class RootConfig {
}

springboot javaconfig

WebConfig

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Bean
    public ResourceBundleMessageSource messageSource() {
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasename("messages");
    messageSource.setDefaultEncoding("UTF-8");

    return messageSource;
    }

    /**解析json返回數據**/
    @Override
    public void configureMessageConverters(List> converters) {
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

    List mediaTypes = new ArrayList(converter.getSupportedMediaTypes());
    converter.setSupportedMediaTypes(mediaTypes);
    mediaTypes.addAll(Arrays.asList(MediaType.TEXT_PLAIN, MediaType.TEXT_HTML, MediaType.TEXT_XML));

    ObjectMapper objectMapper = converter.getObjectMapper();
    objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

    converters.add(converter);
    }
}

測試controller

controller

@RestController
public class HomeController {
    @RequestMapping("/")
    public String home() {
        return "home";
    }

    @RequestMapping("/cn")
    public String cn() {
        return "中文測試";
    }

    @RequestMapping("/object")
    public Book object() {
        return new Book(10, "springmvc-javaconfig踩坑記錄", new Date());
    }


    private class Book {
        private Integer id;
        private String name;
        private Date pubDate;

        public Book(Integer id, String name, Date pubDate) {
            this.id = id;
            this.name = name;
            this.pubDate = pubDate;
        }

        public Integer getId() {
            return id;
        }

        public void setId(Integer id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Date getPubDate() {
            return pubDate;
        }

        public void setPubDate(Date pubDate) {
            this.pubDate = pubDate;
        }
    }
}

controller測試

import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.MockitoAnnotations;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*;

/**
 * Created by sealde on 5/27/17.
 */
public class HomeControllerTest {
    private MockMvc mockMvc;

    @InjectMocks
    private HomeController controller;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        this.mockMvc = standaloneSetup(controller).build();
    }

    @Test
    public void testHome() throws Exception {
        mockMvc.perform(get("/"))
            .andDo(print())
            .andExpect(status().isOk())
            .andExpect(content().string("home"));
    }

    @Test
    public void testCn() throws Exception {
        mockMvc.perform(get("/cn")
            .accept(MediaType.APPLICATION_JSON_UTF8))
            .andDo(print())
            .andExpect(status().isOk())
            .andExpect(content().string("中文測試"));
    }

    @Test
    public void testObject() throws Exception {
        mockMvc.perform(get("/object")
            .accept(MediaType.APPLICATION_JSON_UTF8))
            .andDo(print())
            .andExpect(status().isOk());
    }
}

尚未解決

單元測試不知道怎么使用 WebConfig 的配置

最后

代碼(springmvc dev1分支): http://git.oschina.net/sealde...

代碼(springboot dev1分支): https://git.oschina.net/seald...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67140.html

相關文章

  • 新手上路-搭建項目-springboot-swagger2

    摘要:新手上路搭建項目是一個接口文檔軟件界面如下添加這里使用版本可以正常使用配置文件測試新手上路。 新手上路-搭建項目-springboot-swagger2 swagger2 是一個接口文檔軟件 界面如下 showImg(https://segmentfault.com/img/bVOoim); gradle添加 compile(io.springfox:springfox-swagger...

    XGBCCC 評論0 收藏0
  • 一步步搭建JavaScript框架——初始化項目

    摘要:雖然還不夠,但是開始了。一步步搭建框架項目名稱一開始我做的次是是的一開始什么也沒做,除了從和上注冊了一個叫做的庫然后在我們還沒有開始寫代碼的時候版本就已經是這個速度好快。。生成項目框架為了簡化這一個痛苦的過程,我們還是用。 從開始打算寫一個MV*,到一個簡單的demo,花了幾天的時間,雖然很多代碼都是復制/改造過來的,然而It Works(nginx的那句話會讓人激動有木有)。現在他叫...

    omgdog 評論0 收藏0
  • H5新人福音~零配置搭建現代化的前端工程

    摘要:它可以讓你在沒有任何構建工具例如或等工具配置經驗的情況下,幫你快速生成一個完整的前端工程,并可以打包代碼和靜態資源,使你的項目以最優異的性能上線。針對痛點零配置,快速搭建繁瑣的開發環境搭建。自適應解決方案實現多終端顯示一致。 X-BUILD一套基于Webpack(v4.21.0)快速搭建H5場景開發環境的腳手架,只需要幾分鐘的時間就可以運行起來。X-BUILD是針對H5開發的一套自動化...

    GraphQuery 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<