-
Better program design and higher code quality
-
Detailed project documentation
-
TDD reduces the time required for project development
The difference is beforeEach()/afterEach() automatically run before and after each tests, which:
- removes the explicit calls from the tests themselves.
- invites inexperienced users to share state between tests.
Probably, the strongest argument against TDD is that the tests need to be maintained because the code has got to. Whenever requirements change, you would like to vary the code and tests. ... So, actually, this disadvantage is that the same as before when writing code that apparently takes an extended time.


| Term | Definition |
|---|---|
| functional programming | is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program. |
| object-oriented programming (OOP) | Object-oriented programming is based on the concept of objects. In object-oriented programming data structures, or objects are defined, each with its own properties or attributes. Each object can also contain its own procedures or methods. Software is designed by using objects that interact with one another |
| class | In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods). |
| super | The super keyword refers to the parent class. It is used to call the constructor of the parent class and to access the parent's properties and methods |
| this | this in a Method |
| In an object method, this refers to the "owner" of the method. | |
| Test Driven Development | Is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases. This is as opposed to software being developed first and test cases created later. |
| Jest | Jest is a JavaScript testing framework designed to ensure correctness of any JavaScript codebase. It allows you to write tests with an approachable. |
| Continuous Integration (CI) | Continuous Integration and Continuous Deployment are two modern software development practices. Continuous Integration (CI) is the process of automating the build and testing of code every time a team member commits changes to version control. |
| REST | REST stands for REpresentational State Transfer. REST is web standards based architecture and uses HTTP Protocol. It revolves around resource where every component is a resource and a resource is accessed by a common interface using HTTP standard methods. |
| Data Model | JSON objects and arrays in the ABL are based on the objects and arrays of the JavaScript data model. JavaScript objects are associative arrays. Object property names can be any Unicode string. Properties and their values can be added, changed, or deleted at runtime. |


