- 📖 About the Project
- 💻 Getting Started
- 👥 Authors
- 🔭 Future Features
- 🤝 Contributing
- ⭐️ Show your support
- 🙏 Acknowledgements
- ❓ FAQ (OPTIONAL)
- 📝 License
In this project, the goal is to implement a class called Solver with three methods (factorial, reverse, and fizzbuzz) using the test-driven development (TDD) approach. TDD involves writing tests before writing the actual code. For the factorial method, it calculates the factorial of a given number, ensuring that it handles special cases like 0 and negative numbers. The reverse method reverses a given word, and the fizzbuzz method constructs a string based on a given number, following specific rules. The TDD approach ensures that tests are written to define the expected behavior of each method, and the code is then implemented to pass those tests. This iterative process of writing tests first helps guide the development, improves code quality, and ensures that any changes to the code are validated by the tests that are created.
The project is built with the following technologies:
- Ruby
The key features of this project include:
- Reliability and Maintainability
- Clear Specification
- Incremental Development
- Improved Code Organization
- Early Bug Detection
- Better Test Coverage
- Documentation and Collaboration
- Refactoring Support
To get started with the project, follow the instructions below.
To set up the project locally, you need to have Ruby installed on your system.
- Ruby (version 2.5 or above)
- Clone the repository:
clone git@github.com:emhamza/test-driven-development.git
- Change into the project directory:
cd opp-school-library
bundle install
Modify and run the ruby files to utilize the MyList class and test the methods.
ruby person.rb
ruby student.rb
ruby teacher.rb
Run the execution file
./main.rb
- The output will be printed on the console.
To run the test change the file name for respective file
ruby -S rspec spec/<filename>_spec.rb
There is no specific deployment process for this project as it is a code implementation. However, you can integrate project into your own Ruby applications.
👤 Nabeel Ahmed
- GitHub: @Metaverse-Nabeel
- LinkedIn: @Nabeel129
- Wellfound(AngelList): @Nabeel129
👤 Daniel Carrera
- GitHub: @carreraprogrammer
- Twitter: @carreraprogrammer
- LinkedIn: [Daniel Carrera] (https://www.linkedin.com/in/daniel-carrera-paz-85a917244/)
Possible future features for this project include:
- Add more methods to the
TDD Project
- Enhance error handling and edge case scenarios
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.
If you would like to contribute to this project, you can follow these steps:
- Fork the repository.
- Create a new branch for your changes.
- Make your changes and commit them.
- Push your changes to your forked repository.
- Create a pull request back to the original repository.
If you like this project, please give it a star on GitHub.
-
Can I modify and redistribute this project?
- Yes, you can modify and redistribute this project as long as you follow the terms of the MIT license.
-
How can I contribute to this project?
- Contributions, issues, and feature requests are welcome! You can check the issues page to see if there are any current issues or feature requests that you can work on. If not, feel free to submit a new issue or pull request. Before contributing, please read the CONTRIBUTING.md file for guidelines on how to contribute to this project.
This project is MIT licensed.