I am working on a custom test framework (in java), There are 4 components in this:-
- API to Tests : These are the classes, functions etc.. which are under test.
Example:
ClassAPI1 {apiFunction11, apiFunction12, apiFunction13, apiFunction14}
ClassAPI2 {apiFunction21, apiFunction22, apiFunction23, apiFunction24}
It is bundled in a jar, lets say : api.jar
- Library : There are reusable helper functions, utility methods , logging functions, assertion functions etc.
Example:
ClassLib1 { libFunction1, libFunction2, libFunction3, libFunction4 }
ClassLib2 { libFunction1, libFunction2, libFunction3, libFunction4 }
- Tests : There are tests which are calling api’s + Library in specific order , so that it become a use case or business scenario.
Example :
Tests1Class {
@Metadata (Handled by Test Runner Framework) like test owner, testid etc...
ClassAPI1.apiFunction11
ClassAPI2.apiFunction21
ClassAPI1.apiFunction13
ClassLib1.libFunction2
ClassLib2.libFunction4
} // End of test case.
Tests and Library also bundled in a jar lets say : tests-lib.jar
- Test Runner Framework : It actually read test or list of test cases , execute them and log results. It is separate jar over which user has no control lets say : runner.jar
Now I am expecting frequent changes in API under test and in that case I may have to change my lib + test cases every time if there are change(s) in API’s under test.
My Objective is to have something additional may be a virtual layer, which I don't know as of now how it will look like.
I wish this virtual layer to accommodate these changes so that I don’t have to make changes in lib and my tests or minimal changes when Underlying API is changing.
Can someone suggest any good solution to address this problem?
Aucun commentaire:
Enregistrer un commentaire