我有一个处理jwt创建的类:
public class JwtTokenHandler {
@Value("${jwtSecret}")
private String jwtSecret;
@Value("${jwtExpirationInMs}")
private int jwtExpirationInMs;
public String generateToken(String subject) {
Date now = new Date();
Date expiryDate = new Date(now.getTime() + jwtExpirationInMs);
return Jwts.builder()
.setSubject(subject)
.setIssuedAt(new Date())
.setExpiration(expiryDate)
.signWith(SignatureAlgorithm.HS512, jwtSecret)
.compact();
}
}
并从resources文件夹中的属性文件中获取jwtSecret和jwtExpirationInMs。
我的单元测试如下所示:
@RunWith(SpringRunner.class)
public class JwtTokenProviderTest {
@InjectMocks
private JwtTokenProvider jwtTokenProvider;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testGenerateToken() {
String result = jwtTokenProvider.generateToken("Test");
assertThat(result).isNotBlank();
}
我建议查看Spring Boot的@mockedBean
注释,而不是@injectmocks
。有了它,装豆子就容易多了。
知道为什么@Context注入在单元测试时不起作用吗?
我的“BBService”对象在这里为空 我是不是漏掉了什么?
我想配置一个Spring Boot应用程序,以便根本不使用DB。因此,我对应用程序类进行了注释,以排除JPA自动配置类: 原因:org.springframework.beans.factory.BeanCreationException:创建名为“data source”的bean时出错:调用init方法失败;嵌套异常是java.lang.IllegalStateException:无法为测试确
我有一个@Service,我试图在单元测试中嘲笑它,但到目前为止我得到了一个空值。在应用程序类中,我指定什么是scanBasePackages。我必须用不同的方式来做这件事吗?谢谢。 这是我的服务类,它实现了一个接口: 这是我的单元测试。
我在我的SpringBoot应用程序“demo”中使用了注释样式的Resilience4j。当通过RestTemplate调用外部后端时,我希望使用TimeLimiter并重试以实现以下目标: 将REST调用持续时间限制在5秒-->如果需要更长时间,则使用TimeoutException失败 在TimeoutException上重试-->最多尝试2次 为了查看弹性设置的配置是否如设计的那样工作,我
当使用mockito单元测试Spring mvc控制器时,如何注入道层对象。当使用SpringJUnit4ClassRunner类时,它总是使用@Spy注释给空指针异常。 示例代码: 在这个测试用例中,依次调用,它总是返回