Junit4升级Junit5汇总
概要
记录Junit4升级到Junit5中遇到的问题和结局方案
MockMvcBuilders
问题:
将Junit4的@RunWith和@Rule都改成@ExtendWith后出现setup函数中MockMvcBuilders的参数不正确
@ExtendWith({SpringExtension.class, RestDocumentationExtension.class})
public class xxx{
/**
* Restドキュメント
*/
public final ManualRestDocumentation restDocumentation = new ManualRestDocumentation("xxx");
/**
* コンテキスト
*/
@Autowired
private WebApplicationContext context;
@BeforeEach
public void setUp(){
mockMvc = MockMvcBuilders
.webAppContextSetup(this.context)
.apply(documentationConfiguration(this.restDocumentationContextProvider))
.build();}
解决方案
@ExtendWith({SpringExtension.class, RestDocumentationExtension.class})
public class xxx{
@Autowired
private WebApplicationContext webApplicationContext;
@BeforeEach
public void setUp(RestDocumentationContextProvider restDocumentation){
mockMvc = MockMvcBuilders
.webAppContextSetup(webApplicationContext)
.apply(documentationConfiguration(restDocumentation))
.build();}
UnnecessaryStubbingException
问题:
org.mockito.exceptions.misusing.UnnecessaryStubbingException:
Unnecessary stubbings detected.
解决:
在没有明确意图的情况下,基本上最好是修复代码,但这个错误可以通过将代码设置为 "宽松 "模式来抑制,正如错误信息中所述。 下面是一些抑制它的方法。
当使用JUnit 5(MockitoExtension)时,可以通过在@MockitoSettings注解中指定一个属性来抑制这一点。这个设置似乎适用于Mockito#mock方法的部分。
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
public class xxx{
xxx}