我想嘲笑外部电话.
ResponseEntity<?> httpResponse = requestGateway.pushNotification(xtifyRequest);
Run Code Online (Sandbox Code Playgroud)
requestGateway是一个界面.
public interface RequestGateway
{
ResponseEntity<?> pushNotification(XtifyRequest xtifyRequest);
}
Run Code Online (Sandbox Code Playgroud)
以下是我正在尝试的测试方法.
@Test
public void test()
{
ResponseEntity<?> r=new ResponseEntity<>(HttpStatus.ACCEPTED);
when(requestGateway.pushNotification(any(XtifyRequest.class))).thenReturn(r);
}
Run Code Online (Sandbox Code Playgroud)
上面的when语句中存在编译错误,称其为无效类型.甚至thurgg类型为ResponseEntity.
有谁可以帮我解决这个问题?
迁移到 Spring Boot 3 后,
extends ResourceServerConfigurerAdapter is deprecrated.
Run Code Online (Sandbox Code Playgroud)
因此,无法使用覆盖的方法
@Override
public void configure(ResourceServerSecurityConfigurer config) {
config.tokenServices(tokenServices());
}
Run Code Online (Sandbox Code Playgroud)
我可以将其替换为
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.csrf().disable();
http.authorizeHttpRequests(auth->auth.
requestMatchers(whitelistedEndPoints()).permitAll()
.anyRequest()
.anonymous())
.httpBasic().disable();
return http.build();
}
Run Code Online (Sandbox Code Playgroud)
我有一个现有代码可以从 OAuth 获取 jwt 令牌,如下所示
public String getJwtTokenFromAuth() {
OAuth2Authentication auth =(OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
OAuth2AuthenticationDetails oauth2AuthenticationDetails = (OAuth2AuthenticationDetails) auth.getDetails();
return oauth2AuthenticationDetails.getTokenValue();
}
Run Code Online (Sandbox Code Playgroud)
然而,
OAuth2Authentication 和 OAuth2AuthenticationDetails 不可用
我如何用 Spring Boot 3 的新 Spring Security 模块替换此代码/功能。下面是 pom 依赖项,请建议我是否需要添加/删除任何依赖项?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-resource-server</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud) Mockito.when
为下面的代码行获取空指针异常。
when(entityManager.createQuery(any(String.class)).setParameter(any(String.class), any(String.class)).getSingleResult()).thenReturn("2");
Run Code Online (Sandbox Code Playgroud)
试图模拟声明为的实体管理器
@Mock
private EntityManager entityManager;
Run Code Online (Sandbox Code Playgroud)
任何帮助解决这个问题?
完成测试类
@RunWith(MockitoJUnitRunner.class)
public class ASDAOImplTest {
@InjectMocks
ASDAOImpl asdaoImpl=new ASDAOImpl();
@Mock
private EntityManager entityManager;
@Before
public void setUp()
{
ReflectionTestUtils.setField(asdaoImpl,"capLimit", 1);
}
@Test
@Ignore
public void validateCappingTest()
{
when(entityManager.createQuery(any(String.class)).setParameter(any(String.class), any(String.class)).getSingleResult()).thenReturn("2");
asdaoImpl.validateCapping("2");
}
}
Run Code Online (Sandbox Code Playgroud)