我使用Elastic 6.2,SpringBoot,Java 8.

@RestController

@Log4j2

@AllArgsConstructor

@RequestMapping("/api/logs")

public class ElasticRestController {

@PostMapping("/search")

public GenericResponse> findLogs(@RequestBody ESLogRequestDTO esLogRequest,

Pageable pageable) throws NoConnectionException {

SearchResponse searchResponse = elasticUIService.

findLogsByParameters(esLogRequest, pageable);

return GenericResponse.

success(convertToStandardResponse(searchResponse.getHits(), pageable));

}

}

这里是JUnit控制器测试,在json(searchRequest)中有一些填充请求:

@WebMvcTest(

value = ElasticRestController.class,

secure = false

)

public class ElasticRestControllerTest extends AbstractControllerTest {

private static final String CONTENT_TYPE = "application/json;charset=UTF-8";

@MockBean

private ElasticUIService elasticUIService;

@MockBean

private ElasticsearchService elasticsearchService;

@Autowired

private ElasticRestController elasticRestController;

@Autowired

private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter;

@Autowired

private MockMvc mockMvc;

@Rule

public JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation();

@Before

public void before() {

mockMvc = MockMvcBuilders.standaloneSetup(elasticRestController)

.setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver())

.setMessageConverters(mappingJackson2HttpMessageConverter)

.apply(MockMvcRestDocumentation.documentationConfiguration(this.restDocumentation))

.build();

}

@Test

public void findLogsByParametersTest() throws Exception {

String searchRequest = "{\n" +

"\t \"levels\": [\"INFO\"],\n" +

" \"module\": \"test module\",\n" +

" \"version\": \"version 1\",\n" +

" \"thread\": \"test thread\",\n" +

" \"requestId\": \"1\",\n" +

" \"message\": \"test message 3\",\n" +

" \"rangeFrom\": \"2018-02-26T07:02:50.000Z\",\n" +

" \"rangeTo\": \"2018-03-05T07:02:50.000Z\",\n" +

" \"node\": \"first node\",\n" +

" \"system\": \"super system 1\",\n" +

" \"header\": \"test\",\n" +

" \"submodule\": \"test submodule\",\n" +

" \"operation\": \"some operation\",\n" +

" \"service\": \"some service\",\n" +

" \"type\": \"some type\",\n" +

" \"metricType\": \"duration\",\n" +

" \"valueFrom\":400,\n" +

" \"valueTo\":600\n" +

"}";

SearchResponse searchResponse = getSearchResponse();

when(elasticUIService.findLogsByParameters(any(ESLogRequestDTO.class),

any(Pageable.class)))

.thenReturn(searchResponse);

mockMvc.perform(post("/api/logs/search")

.contentType(CONTENT_TYPE)

.content(searchRequest)

.accept(CONTENT_TYPE)

)

.andDo(document(CLASS_NAME_METHOD_NAME))

.andExpect(status().isOk())

.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE));

}

public SearchResponse getSearchResponse() {

SearchResponse searchResponse = new SearchResponse();

return searchResponse;

}

}

我不明白我如何用一些数据来模拟填充SearchResponse.有人有经验吗?也许有一些方法可以通过像searchRequest这样的json数据填充它?

java8 elasticsearch_java – Elasticsearch – Junit测试(模拟或填...相关推荐

  1. JUnit测试模拟JoinPoint

    ​今天的积累都是为了更好的明天,加油!我是java程序员可以关注我一起学习哈! JUnit测试模拟JoinPoint: /** * Pointcut that matches all Spring b ...

  2. Junit测试JAVA文件,java – Junit测试模拟文件操作

    我有一段类似于下面的代码,我被要求进行Junit测试.我们正在使用Junit,EasyMock和Spring Framework.我没有做过多少Junit测试,而且我对如何模拟下面的内容感到有点迷茫. ...

  3. tdd java_适用于Idea的面向现代TDD的Java 8 JUnit测试模板(带有Mockito和AssertJ)

    tdd java 使用类似于BDD的语法,Java 8和Mockito-AssertJ二重奏为Idea调整JUnit测试类模板. 本文涵盖的主题似乎很简单. 但是,根据我的培训师经验,我知道(不幸的) ...

  4. 适用于Idea的面向现代TDD的Java 8 JUnit测试模板(带有Mockito和AssertJ)

    使用类似BDD的语法,Java 8和Mockito-AssertJ二重奏为Idea调整JUnit测试类模板. 本文涵盖的主题似乎很简单. 但是,根据我的培训师经验,我知道(不幸的是)这不是常见的做法. ...

  5. android用什么测试类,android – 使用firebase对类进行JUnit测试

    我正在尝试JUnit测试这个类: public class WeekListActivity extends AppCompatActivity implements AdapterView.OnIt ...

  6. junit测试起名字规则_如何在JUnit 5中替换规则

    junit测试起名字规则 最近发布的JUnit 5(又名JUnit Lambda) alpha发行版引起了我的兴趣,在浏览文档时,我注意到规则以及运行程序和类规则都消失了. 根据文档,这些部分竞争的概 ...

  7. maven junit测试_使用Maven Failsafe和JUnit @Category将集成测试与单元测试分开

    maven junit测试 为什么单元测试应与集成测试分开运行 单元测试级别的TDD相当简单,因为单元测试中的类要么没有复杂的依赖关系,要么使用模拟框架(例如Mockito)来模拟依赖关系. 但是,当 ...

  8. junit 测试mvc_Spring MVC控制器JUnit测试

    junit 测试mvc JUnit测试Spring MVC控制器并非易事 . 但是最近,一个新项目 (即将在Spring推出)提供了新的工具来简化此工作. 这篇文章说明了如何通过JUnit测试来测试一 ...

  9. junit4 单元测试框架_超越JUnit –测试框架的替代方案

    junit4 单元测试框架 JUnit是事实上的Java单元测试框架,但是可能有一些新的(不是那么新的)框架可以用于Web开发. 在采用之前可能要问自己的问题: 它们是否快速,容易开发并因此成本低廉? ...

最新文章

  1. 如何用asp.net向其他服务器post一条信息
  2. sqlhelper使用指南
  3. python2中为什么在进行类定义时最好要加object
  4. mysql 回收空间_MySQL表的碎片整理和空间回收小结
  5. 【AGC035C】Skolem XOR Tree【异或】【构造】
  6. EasyExcel(笔记)
  7. nfc卡模式与标准模式_张家口市环卫进入首都标准“京环模式”
  8. 使用ant design vue 中table组件运行时not found: Error: Can't resolve 'reqwest' in 'D:\vue\antd-demo01\src\com
  9. vscode linux新建c语言,Ubuntu16.04下配置VScode的C/C++开发环境
  10. 设计模式(读书笔记)
  11. c语言随机抽取小程序_c++ c语言编写抽学号小程序
  12. Linux基础(8)Linux常用网络命令
  13. 单片机程序配置成开漏输出_单片机的GPIO配置
  14. linux at任务不运行,linux中at的使用-计划任务
  15. dax-自定义周做同比和环比
  16. 如何修改pdf文件内容并保存
  17. 新闻传播专业的本科毕业论文,有哪些比较好的选题?
  18. Java 实现分页功能
  19. 置信度,置信区间,区间估计
  20. 软件测试周刊(第43期):如果你过普通生活过了很久,只要你稍微努点力,你就以为拼尽了全力,其实不是的。

热门文章

  1. Ubuntu安装完后设置root密码-转
  2. 蓝桥杯 ALGO-105 算法训练 黑色星期五
  3. L2-021 点赞狂魔-PAT团体程序设计天梯赛GPLT
  4. 【C++ 与 STL】栈:stack
  5. NoSQL Manager for MongoDB 破解
  6. perl如何遍历指定文件夹下的指定扩展名文件,并按时间顺序要求删除
  7. percona-toolkit工具包的安装和使用
  8. RabbitMQ集群和失败处理
  9. Java面向对象练习题继承之物种
  10. 微软力挺Silverlight 反击美棒球赛用Flash直播