spring-boot - 我如何模拟 1 个依赖项并自动装配另一个?
问题描述
我的控制器中有 2 个依赖项:一个验证器和一个存储库。对于这个特定的测试,我想模拟验证器,但保留存储库(暂时)。在我以前的代码版本中,我的控制器只有 1 个依赖项(存储库),并且像这样的测试设置似乎会自动连接到正确的存储库中。
@Autowired
CreateShortUrlController createShortUrlController;
当我引入验证器依赖项时,我将测试设置更改为以下
@Autowired
UrlRepository repository;
@Mock
UrlValidator urlValidator = new UrlValidator();
CreateShortUrlController createShortUrlController = new CreateShortUrlController(repository, urlValidator);
现在,当我运行测试时,它说我的存储库为空。我能做些什么来保留在模拟其他依赖项的同时获取正确存储库的“魔力”吗?
解决方案
您需要熟悉@MockBean,并使用它(而不是@Mock)让spring 上下文知道您的模拟bean。
@Autowired
CreateShortUrlController createShortUrlController;
@MockBean
UrlValidator urlValidator;
推荐阅读
- google-chrome - Google Docs 表格单元格在编辑时突然不自动换行
- mesh - Threejs 从网格中切割相交网格
- google-sheets - 无法向下填充公式并复制粘贴特定代码
- amazon-quicksight - 如何格式化 Quicksight 仪表板,以便在导出为 pdf 时表格视觉对象显示所有行
- sql - 违反完整性约束是什么意思 - 在 SQLplus 中找不到父键
- sql-server - 如何测试 SQL Server Profiler 的跟踪?
- sqlite - 如何在 Delphi FireDAC SQLite 中将 blob 保存到文件中
- reactjs - 如何使用 ButtonGroup 和 Button 创建动态单选按钮 - REACTSTRAP
- visual-studio-code - 在 vscode-python 中进行事后调试?
- amazon-web-services - 嵌套 CloudFormation 堆栈回滚