小编Mar*_*lon的帖子

如何修复“考虑在您的配置中定义类型为 'org.jooq.DSLContext' 的 bean。” 更新到 jOOQ 3.15.0 后

在我的 Vaadin 和 Spring Boot 应用程序中,我已从 jOOQ 3.14.12 更新到 3.15.0。此更新后,我的应用程序不再启动。这是我得到的错误:

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in org.komunumo.data.service.MemberService required a bean of type 'org.jooq.DSLContext' that could not be found.


Action:

Consider defining a bean of type 'org.jooq.DSLContext' in your configuration.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我必须定义这个 bean,因为使用 jOOQ 3.14.12 我没有必要。据我所知,这是JooqAutoConfiguration自动完成的。

spring jooq spring-data spring-boot r2dbc

7
推荐指数
1
解决办法
440
查看次数

Mockito匹配器将方法与泛型和供应商进行匹配

我正在使用Java 1.8.0_131,Mockito 2.8.47和PowerMock 1.7.0。我的问题与PowerMock无关,它已发布给Mockito.when(…)匹配器。

我需要一种模拟此方法的解决方案,该方法由我的受测类调用:

public static <T extends Serializable> PersistenceController<T> createController(
    final Class<? extends Serializable> clazz,
    final Supplier<T> constructor) { … }
Run Code Online (Sandbox Code Playgroud)

从被测类中调用该方法,如下所示:

PersistenceController<EventRepository> eventController =
    PersistenceManager.createController(Event.class, EventRepository::new);
Run Code Online (Sandbox Code Playgroud)

为了进行测试,我首先创建了我的模拟对象,该对象应在调用上述方法时返回:

final PersistenceController<EventRepository> controllerMock =
    mock(PersistenceController.class);
Run Code Online (Sandbox Code Playgroud)

那很简单。问题在于方法参数的匹配器,因为该方法将泛型与供应商结合使用作为参数。以下代码按预期编译并返回null:

when(PersistenceManager.createController(any(), any()))
    .thenReturn(null);
Run Code Online (Sandbox Code Playgroud)

当然,我不想返回null。我想返回我的模拟对象。由于泛型,因此无法编译。为了符合类型,我必须编写如下内容:

when(PersistenceManager.createController(Event.class, EventRepository::new))
    .thenReturn(controllerMock);
Run Code Online (Sandbox Code Playgroud)

这样可以编译,但是my中的参数不是匹配器,因此匹配不起作用,并且返回null。我不知道如何编写一个匹配器来匹配我的参数并返回我的模拟对象。你有什么主意吗?

非常感谢Marcus

java generics unit-testing matcher mockito

5
推荐指数
1
解决办法
3507
查看次数

配置更新机器人以自动合并次要更新和补丁更新

在我的 GitHub 存储库中,我想将更新机器人配置为自动合并所有次要(和较小)更新,并仅为主要更新创建 PR。如果我正确理解该文档,我的包规则应该配置该行为:

{
  "extends": [
    "config:base",
    ":disableDependencyDashboard"
  ],
  "ignorePaths": [
    "Dockerfile",
    "package.json",
    "pnpm-lock.yaml"
  ],
  "assignees": [
    "McPringle"
  ],
  "reviewers": [
    "McPringle"
  ],
  "packageRules": [
    {
      "matchUpdateTypes": ["minor", "patch", "pin", "digest"],
      "automerge": true
    },
    {
      "matchDepTypes": ["devDependencies"],
      "automerge": true
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但翻新机器人不会合并次要更新。尽管如此,所有内容都以 PR 的形式出现,我必须手动合并。这是一个例子:

-    <version>2.6.1</version>
+    <version>2.6.2</version>
Run Code Online (Sandbox Code Playgroud)

此补丁更新应该会自动合并。有人可以解释一下我的理解和做错了什么吗?在这里你可以找到我正在谈论的 GitHub 存储库,包括更新配置文件和 PR,我现在还没有合并它们: https: //github.com/komunumo/komunumo-server

github renovate

5
推荐指数
1
解决办法
7359
查看次数