在 SpringBoot 中我有这个服务要测试:
@Service
public class CardService{
@Value("${max_transactions}")
private int maxTransactions;
public boolean addTransaction(Transaction transaction){
if(transaction.value < maxTransactions){
...
return true;
}
}
...
}
当我对此函数创建单元测试时 maxTransaction = 0 即使 application.properties 中的值不同。
class MatchesServiceImplTest {
@InjectMocks
CardService service;
@Test
void testAddTransaction(){
Transaction transaction = new Transaction();
transaction.value = 10;
assertTrue(service.addTransaction(transaction))
}
}
如何在私有字段中注入application.properties值?
我尝试在网上寻找一些东西,但一无所获, 预先感谢。
您可以使用@SpringBootTest注释来加载应用程序上下文,并使用@Autowire来注入被测试的类。下面是一个示例,其中 CardService 是正在测试的类。测试配置包括 maxTransactions 的属性设置。
@SpringBootTest(classes = CardService.class, properties = {"maxTransactions=10"})
class MatchesServiceImplTest {
@Autowired
private CardService cardService;
// Test methods go here
}