Un backend ne sert pas qu’à stocker des données. Il sert à orchestrer des actions.
Exemples :
Email = “communication automatique” du système.
Vous ne voulez pas :
Solution : MailHog (boîte mail fake).
mailhog: image: mailhog/mailhog ports: - "1025:1025" - "8025:8025"
Interface web : http://localhost:8025
spring: mail: host: localhost port: 1025
@Service public class MailService { private final JavaMailSender sender; public MailService(JavaMailSender sender) { this.sender = sender; } public void sendText(String to, String subject, String body) { SimpleMailMessage msg = new SimpleMailMessage(); msg.setTo(to); msg.setSubject(subject); msg.setText(body); sender.send(msg); } }
Pourquoi un service dédié ?
Au moment où l’inscription est validée :
mailService.sendText( proprietaire.getEmail(), "Inscription confirmée", "Votre chien " + chien.getNom() + " est inscrit au concours " + concours.getNom() );
@ExtendWith(MockitoExtension.class) class MailServiceTest { @Mock JavaMailSender sender; @InjectMocks MailService service; @Test void should_send_message() { service.sendText("a@b.com", "Sujet", "Hello"); verify(sender).send(any(SimpleMailMessage.class)); } }