Hello!
After the latest update to my project, I decided it was the perfect time to finally start writing tests for Finovara.
So far, I've written tests for the main methods.
On average, I run 2-3 tests per method, which seems like a good compromise. I cover both the happy path and a few edge cases and alternate flows—basically, I try to make sure everything works as expected, regardless of the situation.
Overall, I'm aiming for 70-80% code coverage, though this may change as I add more tests and improve what I already have.
Example of a simple test:
@Test
void shouldAddRevenueSuccessfully() {
RevenueDTO dto = new RevenueDTO(null, null, new BigDecimal("100"), RevenueCategory.SALARY, null, "test income");
String email = "test@test.com";
User user = new User();
when(timeConfig.clock()).thenReturn(Clock.systemDefaultZone());
when(userManagerService.getUserByEmailOrThrow(email)).thenReturn(user);
revenueService.addRevenue(dto, email);
verify(walletService).addBalanceToWallet(email, dto.amount());
verify(revenueActivityService).createRevenueActivity(eq(email), eq(RevenueActivityType.ADDED_REVENUE), any(Revenue.class));
verify(revenueRepository).save(any(Revenue.class));
verify(revenueScoringService).recalculateScore(email);
verify(autoPaymentsService).handleRevenuePiggyBankAutomation(email, dto.amount(), AutoPaymentsMode.APPLY);
}
Next, I plan to write expense tests. I'll see how it goes
Thanks for reading, and please visit my GitHub: Finovara is a financial management platform designed to help users effectively track
analyze, and optimize their income, expenses, and savings
The application provides a secure, bank-like experience focused on transparency,
financial awareness, and long-term money planning. Finovara aims to support users in making better financial decisions by offering
clear insights into their financial activity and helping them maintain control
over their budgets and savings. The platform focuses on:
M4rc1nek
/
finovara-backend
Backend service for a personal finance management application
Finovara
🎯 Purpose of the Application
🚀 Key Features
Top comments (0)