小编K. *_*oub的帖子

IntelliJ IDEA 测试覆盖率窗口不显示

我正在将 Spring Boot 项目与 IntelliJ IDEA 的最新版本(2018.2.1 Ultimate Edition)一起使用。

当我使用覆盖率运行所有测试时,覆盖率窗口不会显示,并且除了我的主要类之外没有百分比。

我尝试通过转到 启用覆盖窗口View -> Tool Windows -> Coverage,但覆盖选项卡被禁用(不可单击)。

在此输入图像描述

如果我没记错的话,在我更新 IntelliJ 之前覆盖范围工作正常。这是上个版本的错误吗?

编辑
覆盖率插件已安装
在此输入图像描述

java jetbrains-ide intellij-idea spring-boot

8
推荐指数
2
解决办法
4万
查看次数

MySQL架构设计:一张带类型列的表 VS 多张表

我正在制作一个关于电影的网站,我想在电影和演员(导演、编剧和演员)之间建立关系,有两种可能性可以实现这一点,第一个是创建每个演员的表格:

CREATE TABLE director(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));  
CREATE TABLE writer(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));  
CREATE TABLE actor(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));
Run Code Online (Sandbox Code Playgroud)

并在每个表和电影表之间建立多对多关系。
第二种可能性是为演员表创建一个带有类型列的表,该列可以引用导演、作家或演员,并在该表和电影表之间建立多对多关系。

CREATE TABLE cast(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), type varchar(10));
Run Code Online (Sandbox Code Playgroud)

注意:对于演员,自动生成表将有一些附加列:character_name、role...
那么对于这种情况哪种可能性更好?

mysql sql

6
推荐指数
2
解决办法
2643
查看次数

Spring-boot测试具有可分页的休息控制器

我正在尝试测试以下控制器:

@GetMapping("movies")
public Page<Title> getAllMovies(@PageableDefault(value=2) Pageable pageable){        
    return this.titleService.getTitleByType("Movie", pageable);
}
Run Code Online (Sandbox Code Playgroud)

这是测试类:

@RunWith(SpringRunner.class)
@WebMvcTest(TitleController.class)
@EnableSpringDataWebSupport
public class TitleControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private TitleService titleService;

    // Test controller method - getAllMovies
    @Test
    public void getAllMovies() throws Exception {
        Title title = new Title();
        title.setId((short)1);
        title.setName("The Godfather");
        title.setType("Movie");    

        List<Title> titles = new ArrayList<>();
        titles.add(title);
        Page<Title> page = new PageImpl<>(titles);

        given(this.titleService.getTitleByType("Movie", PageRequest.of(0,2))).willReturn(page);
        mockMvc.perform(MockMvcRequestBuilders.get("/movies"))
                .andExpect(status().isOk());
    }
}  
Run Code Online (Sandbox Code Playgroud)

当我运行测试时它失败并给我以下消息:

java.lang.AssertionError: Status 
Expected :200
Actual   :500
Run Code Online (Sandbox Code Playgroud)

当我测试网址时,http://localhost:8080/movies它正常工作.

rest junit mockito spring-data-jpa spring-boot

2
推荐指数
1
解决办法
2562
查看次数