Automated tests/ jest/ TDD/ CI/CD/ syuper-test/ By Nima Shokouhfar

This mindmap provides a structured overview of testing practices and CI/CD pipelines in software development. It highlights the importance of writing tests, especially in the modern era of AI-based code generation (like ChatGPT), where automated tools can introduce unforeseen errors. Key themes include: CI/CD Pipeline Prevents deploying faulty code to production. AAA (Arrange, Act, Assert) A common testing pattern for organizing tests. Docker Testing Leveraging Docker to run tests in isolate...

Get Started. It's Free
or sign up with your email address
Automated tests/ jest/ TDD/ CI/CD/ syuper-test/ By Nima Shokouhfar by Mind Map: Automated tests/ jest/ TDD/ CI/CD/ syuper-test/ By Nima Shokouhfar

1. Styles

1.1. others

1.1.1. styles

1.1.1.1. bad

1.1.1.1.1. Very bad

1.1.1.2. good

1.1.1.2.1. very good

1.1.1.3. not as good

1.1.1.4. not as bad

1.1.1.5. important

1.1.1.5.1. Very important

1.1.1.6. warning

1.1.1.7. link

1.1.2. AUTHOR

1.1.2.1. Nima Shokouhfar

1.1.2.1.1. Linkedin

1.1.2.1.2. Youtube

1.1.2.1.3. Medium

1.1.2.1.4. Github

1.1.2.1.5. upwork

1.1.2.1.6. main website: ideariver.ca

1.1.3. Styling Version

1.1.3.1. 3.0.1

1.2. main

2. main

2.1. CI/CD pipeline

2.1.1. avoid pushing disfunctional code to the server

2.2. why

2.2.1. why write test?

2.2.1.1. CHATPGT Era & code generators era

2.2.1.1.1. We all use chatgpt to write code these days. However, these tools are not perfect and make stupid mistakes that human can never catch

2.2.1.1.2. So, if you use these tools and not writing test, the system can get unstable very fast

2.2.1.1.3. This is why I believe writing test in our time is the matter of utmost importance

2.2.1.2. refactoring

2.2.1.2.1. When changing the code, you do not create a time bomb

2.2.1.3. Maintenance

2.2.1.3.1. Passing to other engineers

2.2.1.4. automated test

2.2.1.4.1. especially, for multiple instances of same class

2.2.1.4.2. plugin systems

2.2.1.4.3. Sometimes, it is faster to test a functionality by automated tests than doing it manually

2.2.1.5. Atomic system

2.2.1.5.1. when you write test from small units to large fully integerated one, it becomes extremely easy to find where the code broke very fast

2.2.1.6. catch bugs that are extremely difficult to create manually

2.2.1.7. Performance testing

2.2.1.7.1. Execution time testing

2.2.1.8. BTW, it is much easier to test something in debugging environment than actuall environment

2.3. AAA Arrange, Act and Assert

2.4. Docker testing

2.4.1. test with docker

2.5. test pyramid

2.5.1. unit testing

2.5.2. integration test

2.5.3. end to end test

2.6. tricks

2.6.1. asnyc

2.6.1.1. test

2.6.1.1.1. solution

2.6.1.2. how to do

2.6.1.3. when you have async calls in your code

2.7. Supertest

2.7.1. login

2.7.1.1. session/ agent

2.7.1.1.1. Session Persistence

2.7.1.1.2. Simulates Real-World User Sessions

2.7.1.1.3. npm install supertest@latest superagent@latest --save-dev