Kola is a testing framework and tool, primarily serving the entire Apihug ecosystem, and is still under active development and enhancement (as of 2024/08).
Kola inherits the design principles of ApiHug:
- Unified language, DSL, and reduced divergence
- Relying on existing technologies, maximizing the utilization of existing assets
- Extremely low learning cost
- Single source of truth, with version control management
- Testing often requires either high expertise (programming skills) or is too loosely structured
- Multiple tool stacks and lack of context switching between different roles
- Lack of design planning upfront
- Rigorous version management
- Native Collaboration
- TDD: Test Driven Development
- BDD: Behavior-Driven Development
- CDC: Consumer Driven Contracts
Among the many testing solutions available, each has its own pros and cons, leading to a lack of overall convenience and completeness in most integrated solutions.
Some deficiencies are difficult to satisfy in the current paradigm, such as enabling all stakeholders (product manager, front-end, back-end, testing, etc.) to understand and write the tests, and providing a centralized and unified testing management.
Within the constrained environment of ApiHug, Kola provides a relatively optimal solution:
- Follows the BDD naming convention:
Given
/When
/Then
/And
, intuitive and simple
- DSL, based on the declarative groovy syntax
- Strong validation: static checking (groovy) + compilation processing
- More
"sugar"
, enabling user habit migration: junit
, junit5
, assertj
, jsonpath
, rest-assured
- ApiHug integration
- IDE support
- Collaboration
Eventually, on 2024-08-02, the first version of Kola, 1.0.0-RELEASE was released with latest ApiHug SDK bom.
⚠️TBD⚠️
- Multipart file support
- Customized report
- Debug tool
- Dependencies import
- Event driven support
- Stub side
- performance test
- spring test spring-framework/spring-test
- spring test doc spring-framework/reference/testing
- spring boot test spring-boot-test
- spring boot test doc spring-boot/testing
- spring contract spring-cloud-contract
- spring contract doc spring-cloud-contract reference
- cucumber Behaviour-Driven Development
- Spock: Spock Framework
- karate Test Automation Made Simple
- Contract Test Martin Fowler
- PactFlow SmartBear Consumer Driven
- Contract Testing Vs Integration Testing from PactFlow
- Consumer-Driven Contracts: A Service Evolution Pattern