This project is my solution for the Bank Kata technical test as part of my application for the QA and Test Automation Engineer position at Skypay. The goal was to implement a simple bank account system while applying Mockist principles and acceptance testing with Cucumber.
This implementation adheres to the following requirements:
- Java 17
- Spring Boot for application framework
- Maven for dependency management
- JUnit 5 for unit testing
- Mockito for mocking dependencies
- Cucumber for BDD-style acceptance testing
- IntelliJ IDEA for development and test execution
src/main/java/com/example/Bank/
-- BankApplication.java # Spring Boot main application class
-- Account/Account.java # Implements AccountService
-- Account/AccountService.java # Service interface for account operations
-- Transaction/Transaction.java # Represents a transaction
-- Printer/StatementPrinter.java # Interface for statement printing
-- Printer/StatementPrinterImpl.java # Implements statement printing logic
src/test/java/com/example/Bank/
-- AccountTest.java # Unit tests using Mockito
-- BankAccountCucumberSteps.java # Step definitions for Cucumber tests
-- RunCucumberTest.java # Runs acceptance tests
src/test/resources/features/
--bank_kata.feature # define Cucumber scenarios using Gherkin syntax , test case requirements
mvn testmvn verify