Episode[14]: Unit Testing 101


Manage episode 258597540 series 2594505
بواسطة Nullplus.plus and Mohamed Luay , Ahmad Alfy، اكتشفه Player FM ومجتمعنا ـ حقوق الطبع والنشر مملوكة للناشر وليس لـPlayer FM، والصوت يبث مباشرة من خوادمه. اضغط زر الاشتراك لمتابعة التحديثات في Player FM، أو ألصق رابط التغذية الراجعة في أي تطبيق بودكاست آخر.

Because of the high complexity and depth of this episode, we will share with you the episode outline and the topics discussed here as a reference.

Episode Outline:

What is unit testing?

test for the smallest possible pieces of your program.

كل حاجة فيها سليمة بس لوحدها - سلطان السكري

Why Unit Testing

  1. Help the developer deeper understand the logic he/she is implementing.
  2. Help developer writes more modular, loosely coupled code.
  3. Make it faster to develop and debug. (You can fake all the possible scenarios and see how the test is responding to each)
  4. Find bugs early.
  5. Help with documenting the code you are doing.
  6. Help when it comes to refactoring.
  7. It helps to automate the development process and decrease deployment-related friction.

Unit Testing Best Practices

1- Identifying Units:

When it comes to the unit you are testing, you need to answer three questions.

a. What is the output of this unit?

b. What helper functions that this unit is using to achieve that output?

c. Are there any side effects resulting from this unit. (it modifies state variables outside its scope).

2- Naming & Description

Why? it makes the test easier to read and hence easier to figure out what went wrong.

Describe & It. (This thing / should or does something)

- The search function should return an array of strings matching the search keyword.

- The search function should return an empty array when a keyword is not matching any.

- throw an exception if the keyword is an empty string.

3- Mocking & Stubs

- The unit test is 50% mocking and 50% clean code.

  • Check Martin Fowler's article in the for more depth in mocking

Check the resources section.


Episode Picks:

65 حلقات