小编sun*_*xca的帖子

如何解决“要创建新的模拟,必须注销现有的模拟注册”

尝试模拟静态方法时出现以下异常:

org.mockito.exceptions.base.MockitoException:对于 de.msggillardon.system.UserContext,静态模拟已在当前线程中注册要创建新的模拟,必须取消注册现有的静态模拟注册

对于以下代码:

 @ExtendWith(MockitoExtension.class)
// @PrepareForTest(UserContext.class)
public class KonfigurationCopyServiceTest {

  public static final String CONFIGURATION_NAME = "Standard-Konfiguration";

  @Mock
  public TriggeringKonfigurationService triggeringKonfigurationService;
  @Mock
  public ReportKonfigService reportConfigurationService;
  @Mock
  public BuchungsschemaService buchungsschemaService;

  public KonfigurationCopyService copyService;

  @BeforeEach
  public void init() {
    Mockito.mockStatic(UserContext.class);
    Mockito.when(UserContext.getUsername()).thenReturn("superuser");

    copyService = new KonfigurationCopyService(triggeringKonfigurationService,
        reportConfigurationService, buchungsschemaService);
  }

Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

谢谢你!

编辑:UserContext.java

package de.msggillardon.system;

/**
 * This class contains the username and IP-address of the logged in user. It is initialized for each
 * session.
 *
 * @author wildp
 */
public class …
Run Code Online (Sandbox Code Playgroud)

java unit-testing mockito junit5

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

标签 统计

java ×1

junit5 ×1

mockito ×1

unit-testing ×1