وب سایت تخصصی شرکت فرین
دسته بندی دوره ها

Real-World TypeScript Unit Testing

سرفصل های دوره

Create unit tests for real world typescript system with few modules using vitest or jest


1. Getting started
  • 1. Welcome to my course
  • 2. Setup simple unit test project
  • 3. Setup simple unit test project.html
  • 4. Create your first unit test
  • 5. Create your first unit test.html
  • 6. Coding Excercise 1
  • 7. Coding Excercise 1 solution

  • 2. Testing concepts and tools
  • 1. Section Intro
  • 2. What is testing
  • 3. What is testing.html
  • 4. Unit test vs integration test vs e2e test
  • 5. Unit test vs integration test vs e2e test.html
  • 6. Side effects
  • 7. Side effects.html
  • 8. Properties of a good unit test
  • 9. Properties of good unit test.html
  • 10. Manual test vs automatic test
  • 11. Manual test vs automatic test.html
  • 12. Motivation for automatic testing
  • 13. Motivation for automatic testing.html
  • 14. Should you test all your code
  • 15. Should you test all your code.html
  • 16. Unit testing best practices
  • 17. Unit testing best practices.html
  • 18. Unit testing modes
  • 19. Unit testing modes.html
  • 20. Unit testing framework vitest and jest
  • 21. Unit testing framework vitest and jest.html
  • 22. Vitest
  • 23. Vitest.html
  • 24. Jest
  • 25. Jest.html

  • 3. Task queue manager- the system we will unit test
  • 1. Section Intro
  • 2. Simple system UI
  • 3. Simple system UI.html
  • 4. Block diagram
  • 5. Block diagram.html
  • 6. Sequence diagram
  • 7. Sequence diagram.html
  • 8. Source code
  • 9. Source code.html
  • 10. Motivation
  • 11. Motivation.html
  • 12. Specification
  • 13. Specification.html
  • 14. Project structure
  • 15. Project structure.html

  • 4. Unit test of pure logic code - TaskQueue
  • 1. Section intro
  • 2. Directory final setup
  • 3. Unit test of an object or a class
  • 4. Unit test of an object or a class.html
  • 5. Choosing the first module to unit test
  • 6. Choosing the first module to unit test.html
  • 7. Setup unit test for TaskQueue
  • 8. Setup unit test for TaskQueue.html
  • 9. TaskQueue - test for empty queue
  • 10. TaskQueue - test for empty queue.html
  • 11. TaskQueue - test for non empty queue
  • 12. TaskQueue - test for non empty queue.html
  • 13. Fix the test using beforeEach and add clear function to TaskQueue
  • 14. Fix the test using beforeEach and add clear function.html
  • 15. Code at section end.html
  • 16. Coding Excercise 2
  • 17. Coding Excercise 2 - solution

  • 5. Code coverage
  • 1. Section intro
  • 2. Code coverage meaning and motivation
  • 3. Code coverage meaning and motivation.html
  • 4. Do we need 100% code coverage
  • 5. Do we need 100% code coverage.html
  • 6. Inatallation
  • 7. Inatallation.html
  • 8. Usage
  • 9. Usage.html
  • 10. Coding Excercise 3
  • 11. Coding Excercise 3 - solution

  • 6. Unit testing of pure logic code - TaskDispatcher
  • 1. Section intro
  • 2. Choose the second module to unit test
  • 3. Choose the second module to unit test.html
  • 4. Dive into TaskDispatch code
  • 5. Dive into TaskDispatch code.html
  • 6. Prepare the test file
  • 7. Prepare the test file.html
  • 8. Unit test empty map - dispatch throw
  • 9. Unit test empty map - dispatch throw.html
  • 10. Unit test task not found - dispatch throw
  • 11. Unit test task not found - dispatch throw.html
  • 12. Function type as function argument issue
  • 13. Function type as function argument issue.html
  • 14. Refactor types
  • 15. Refactor types.html
  • 16. Test dispatch status is ok
  • 17. Test dispatch status is ok.html
  • 18. Test reveal bug in dispatch - debug and fix
  • 19. Test reveal bug in dispatch - debug and fix.html
  • 20. Test dispatch result is ok for add function
  • 21. Test dispatch result is ok for add function.html
  • 22. Check code coverge
  • 23. Check code coverge.html
  • 24. How to filter tests
  • 25. How to filter tests.html
  • 26. Code at section end.html
  • 27. Coding Excercise 4
  • 28. Coding Excercise 4 - solution

  • 7. Introduction to unit testing of code with side effects and module interaction
  • 1. Section intro
  • 2. What is a side effect
  • 3. What is a side effect.html
  • 4. What is a mock
  • 5. What is a mock.html
  • 6. Motivation for mocks
  • 7. Motivation for mocks.html
  • 8. API for mocks
  • 9. API for mocks.html
  • 10. Modules with side effects and module interaction
  • 11. Modules with side effects and module interaction.html
  • 12. Solitary (isolated) test vs sociable test
  • 13. Solitary (isolated) test vs sociable test.html

  • 8. Unit test of persist with side effect
  • 1. Unit test using jsdom
  • 2. Unit test using jsdom.html
  • 3. Unit test with console.log and spyOn()
  • 4. Unit test with console.log and spyOn().html
  • 5. Unit test with Storage.prototype and spyOn()
  • 6. Unit test with Storage.prototype and spyOn().html
  • 7. Code at section end.html
  • 8. Coding Excercise 5
  • 9. Coding Excercise 5 - solution

  • 9. Unit test of TaskQueue with persist module interaction
  • 1. Unit test using sociable test
  • 2. Unit test using sociable test.html
  • 3. Motivation for unit test using isolated (solitary) test
  • 4. Motivation for unit test using isolated (solitary) test.html
  • 5. Using mock() and fn() for persist using isolated (solitary) test for TaskQueue
  • 6. Using mock() and fn() for persist using isolated (solitary).html
  • 7. Refactor taskQueue to a class
  • 8. Refactor taskQueue to a class.html
  • 9. Add persist related test cases and use sociable test for TaskQueue
  • 10. Add persist related test cases and use sociable test for TaskQueue.html
  • 11. Use isolated (solitary) test for added test cases
  • 12. Use isolated (solitary) test for added test cases.html
  • 13. Should you use sociable or isolated (solitary) test
  • 14. Should you use sociable or isolated (solitary) test.html
  • 15. Code at section end.html
  • 16. Coding Excercise 6
  • 17. Coding Excercise 6 - solution

  • 10. Unit test of TaskScheduler with fake timer and module interaction
  • 1. Test plan
  • 2. Test plan.html
  • 3. Use fake timers in unit test
  • 4. Use fake timers in unit test.html
  • 5. Test for result and add callback in TaskScheduler
  • 6. Test for result and add callback in TaskScheduler.html
  • 7. Finish the unit test
  • 8. Finish the unit test.html
  • 9. Summary unit test of TaskScheduler
  • 10. Code at section end.html
  • 11. Coding Excercise 7
  • 12. Coding Excercise 7 - solution

  • 11. Introduction to frontend unit testing
  • 1. Section intro - Where are we now and how to continue
  • 2. Where are we now and how to continue.html
  • 3. Dom unit testing tools
  • 4. Dom unit testing tools.html
  • 5. Download and invoke the UI
  • 6. Download and invoke the UI.html
  • 7. Code at section end.html

  • 12. Frontend unit testing with jsdom
  • 1. Jsdom setup and simple unit test for h1 text
  • 2. Jsdom setup and simple unit test for h1 text.html
  • 3. Unit test for buttons count and text
  • 4. Unit test for buttons count and text.html
  • 5. Elegant unit test for buttons using enum and loop
  • 6. Elegant unit test for buttons using enum and loop.html
  • 7. Powerful unit test for enqueue add(1,2) button
  • 8. Powerful unit test for enqueue add(1,2) button.html
  • 9. Unit test with spyOn to test queue length buttton
  • 10. Unit test with spyOn to test queue length buttton.html
  • 11. Use spyOn to test for failure to appear in the UI
  • 12. Use spyOn to test for failure to appear in the UI.html
  • 13.1 Code at lesson end.html
  • 13. More jsdom unit test to get 100% coverage
  • 14. More jsdom unit test to get 100% coverage.html
  • 15. Code at section end.html
  • 16. Coding Excercise 8
  • 17. Coding Excercise 8 - solution

  • 13. Frontend unit testing with dom testing library
  • 1. Introduction and motivation for testing library
  • 2. Introduction and motivation for testing library.html
  • 3. Setup for dom testing library
  • 4. Setup for dom testing library.html
  • 5. Flexible unit test for heading using role and getByRole
  • 6. Flexible unit test for heading using role and getByRole.html
  • 7. Use setup.tc for an extended matcher like toBeInTheDocument
  • 8. Use setup.tc for an extended matcher.html
  • 9. Button role and getAllByRole for a flxible unit test
  • 10. Button role and getAllByRole for a flxible unit test.html
  • 11. userEvent , getByText and status role in unit test
  • 12. userEvent , getByText and status role in unit test.html
  • 13. Repalce sleep with smart wait using waitFor
  • 14. Repalce sleep with smart wait using waitFor.html
  • 15. Unit test for failure to appear in the UI after task has failed
  • 16. Unit test for failure to appear in the UI after task has failed.html
  • 17. Unit test for empty string to appear in the UI if task is not dispatched
  • 18. Unit test for empty string to appear in the UI.html
  • 19. Unit test with console.log and console.error
  • 20. Unit test with console.log and console.error.html
  • 21. Section summary
  • 22. Code at section end.html
  • 23. Coding Excercise 9
  • 24. Coding Excercise 9 - solution

  • 14. More requirements - code changes - unit test
  • 1. Section intro
  • 2. Section intro.html
  • 3. Add is scheduler started in logic and render to the UI
  • 4. Add is scheduler started in logic and render to the UI.html
  • 5. Update test to get 100% coverage
  • 6. Update the test to get 100% coverage.html
  • 7. Render queue length
  • 8. Render queue length.html
  • 9. Support async dispatch function
  • 10. Support async dispatch function.html
  • 11. Faketimer problem with async dispatch solved with flushPromises
  • 12. Faketimer problem with async dispatch.html
  • 13. Unit test of async dispatch functions add and getPosts
  • 14. Unit test of async dispatch functions add and getPosts.html
  • 15. Add enqueGetPosts in the UI + unit test + ad hoc vitest fix
  • 16. Add enqueGetPosts in the UI + unit test + ad hoc vitest fix.html
  • 17. Task overlapping problem
  • 18. Task overlapping problem.html
  • 19. Implement step by step a real timer test for task overlapping
  • 20. Implement step by step a real timer test for task overlapping.html
  • 21. Final task overlapping test + source code
  • 22. Final task overlapping test + source code.html
  • 23. Add action with result to the UI
  • 24. Add action with result to the UI.html
  • 25. Add try catch in dispatch
  • 26. Add try catch in dispatch.html
  • 27. Fix save on empty array for dequeue
  • 28. Fix save on empty array for dequeue.html
  • 29. Code at section end.html
  • 30. Coding Excercise 10
  • 31. Coding Excercise 10 - solution

  • 15. Advanced typescript for better code
  • 1. Section intro
  • 2. Section intro.html
  • 3. The problems with string as action type and possible solutions
  • 4. The problems with string as action type and possible solutions.html
  • 5. Union of strings as action type
  • 6. Union of strings as action type.html
  • 7. Enum as action type
  • 8. Enum as action type.html
  • 9. The problematics of working with type any
  • 10. The problematics of working with type any.html
  • 11. Use type unknown instead of type any
  • 12. Use type unknown instead of type any.html
  • 13. From unknown type to the correct type using validation
  • 14. From unknown type to the correct type using validation.html
  • 15. Unit test for code with unknown
  • 16. Unit test for code with unknown.html
  • 17. Motivation for generic task queue manager
  • 18. Motivation for generic task queue manager.html
  • 19. Design of generic storage using polymorphism , inheritance and interface
  • 20. Design of generic storage using polymorphism , inheritance and interface.html
  • 21. Implement Persist class and IPersistStorage interface
  • 22. Implement Persist class and IPersistStorage interface.html
  • 23. Implement class LocalStoragePersist and check with unit test
  • 24. Implement class LocalStoragePersist and check with unit test.html
  • 25. Refactor and use queue length getter
  • 26. Refactor and use queue length getter.html
  • 27. Code at section end.html
  • 28. Coding Excercise 11
  • 29. Coding Excercise 11 - solution

  • 16. React UI Unit testing with react testing library - RTL
  • 1. Section intro
  • 2. Download react ui and invoke vanilla or react ui
  • 3. Download react ui and invoke vanilla or react ui.html
  • 4. Tools to test react applications - mostly RTL
  • 5. Tools to test react applications - mostly RTL.html
  • 6. Use jsdom to test that a text exists on react ui
  • 7. Use jsdom to test that a text exists on react ui.html
  • 8. Use the RTL to create the first react unit test
  • 9. Use the RTL to create the first react unit test.html
  • 10. More unit tests using the RTL
  • 11. More unit tests using the RTL.html
  • 12. Unit test with document and RTL
  • 13. Unit test with document and RTL.html
  • 14. Complete the remaining tests using the RTL
  • 15. Complete the remaining tests using the RTL.html
  • 16. Fix react bug using unit test
  • 17. Fix react bug using unit test.html
  • 18. Use code coverage to remove unused code
  • 19. Use code coverage to remove unused code.html
  • 20. Section summary
  • 21. Code at section end.html
  • 22. Coding Excercise 12
  • 23. Coding Excercise 12 - solution

  • 17. Unit tests with Jest
  • 1. Section intro
  • 2. What is jest and its API relation with vitest
  • 3. What is jest and its API relation with vitest.html
  • 4. Create jest setup
  • 5. Create jest setup.html
  • 6. Add watch mode
  • 7. Add watch mode.html
  • 8. Add coverage test
  • 9. Add coverage test.html
  • 10. Configure vitest to handle only the test directory
  • 11. Configure vitest to handle only the test directory.html
  • 12. Tweak tests with jest to compile
  • 13. Tweak tests with jest to compile.html
  • 14. Fix test with jest add jsdom to jest.config.ts
  • 15. Fix test with jest add jsdom to jest.config.ts.html
  • 16. Fix test with jest add matchers
  • 17. Fix test with jest add matchers.html
  • 18. Fix test with jest regarding toContain
  • 19. Fix test with jest regarding toContain.html
  • 20. Fix test with jest dayjs problem - add esModuleInterop true in tsconfig.js
  • 21. Fix test with jest dayjs problem.html
  • 22. Fix test with jest persist mock problems -- add clearMocks and replace mock()
  • 23. Fix test with jest persist mock problems.html
  • 24. Use testMatch in jest.config.ts for better test file filtering
  • 25. Use testMatch in jest.config.ts for better test file filtering.html
  • 26. Fix test with jest problem with fetch -- replace with axios in src
  • 27. Fix test with jest problem with fetch.html
  • 28. Build the comparison between jest and vitest
  • 29. Build the comparison between jest and vitest.html
  • 30. Summary of the comparison between jest and vitest
  • 31. Code at section end.html
  • 32. Coding Excercise 13
  • 33. Coding Excercise 13 - solution

  • 18. Where to go from here
  • 1. Here we are - course summary
  • 2. Where to go from here - task queue manager
  • 3. Where to go from here - testing
  • 179,000 تومان
    بیش از یک محصول به صورت دانلودی میخواهید؟ محصول را به سبد خرید اضافه کنید.
    افزودن به سبد خرید
    خرید دانلودی فوری

    در این روش نیاز به افزودن محصول به سبد خرید و تکمیل اطلاعات نیست و شما پس از وارد کردن ایمیل خود و طی کردن مراحل پرداخت لینک های دریافت محصولات را در ایمیل خود دریافت خواهید کرد.

    ایمیل شما:
    تولید کننده:
    مدرس:
    شناسه: 25526
    حجم: 6596 مگابایت
    مدت زمان: 769 دقیقه
    تاریخ انتشار: ۲۱ آذر ۱۴۰۲
    طراحی سایت و خدمات سئو

    179,000 تومان
    افزودن به سبد خرید