java - 为什么在运行 JUnit 测试时带有 @MockBean 的 Mockito 会返回意外的 Pass
问题描述
我试图弄清楚如何创建一个与 Mockito 结合使用的 MockBean。就我而言,我有两个单独的类,一个是 @Controller 我试图在另一个 @SpringBootTest Junit 测试类中模拟。
但是,每当我将 Mockito 作为一个 Junit 测试用例运行时,我都会得到意想不到的结果,当它应该真正返回false时会通过吗?
我在这里缺少某种配置吗?
我附上了这两个类的源代码来向您展示:
首先是控制器类:
package com.springboot.test.testapplication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("/welcome")
public String welcome(Model map) {
map.addAttribute("welcomeMessage", "welcome");
map.addAttribute("message", "important message");
return "welcome";
}
//Method I'm trying to get access to
public String return100() {
return "100";
}
}
这是测试类:
package com.springboot.test.testapplication;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
@SpringBootTest
class TestapplicationApplicationTests {
@MockBean
private TestController controller;
@Test
void contextLoads() {
Mockito.when(controller.return100()).thenReturn("2");
}
}
任何提示将不胜感激..
解决方案
推荐阅读
- bash - 当我这样做时,我需要为 bash 中的当前目录提供 ./
- scala - 播放 2.6 剪影组成 SecuredAction
- asp.net-core - IIS 10 出现黑屏
- javascript - 右侧有按钮的手风琴
- wix - Window 安装程序返回 3 安装初始化 .. 失败
- sitemap - 站点地图不足
- python-3.x - Azure 机器学习工作室中 CSV 文件中包含逗号的字符串数据的列分隔不准确
- javascript - 如何获取所有的innerHTML
- anaconda - 即使 PC 进入睡眠状态,如何让 Jupyter 笔记本保持清醒和运行
- javascript - 类型不匹配。值 (x) 与列索引 1 中的类型编号不匹配