Home > headlines > body text

Today's sharing: Clean code - unit testing

PHPz
Release: 2017-04-19 15:35:29
Original
2256 people have browsed it

From a development perspective, first organize the variables and functions according to certain naming and formats. Next, start writing code. In the industry, many advocate test-driven development. Next, let’s talk about unit testing.

TDD is the English abbreviation of Test-Driven Development. It is a core practice and technology in agile development and a design methodology. The principle of TDD is to write unit test case code before developing functional code.

Todays sharing: Clean code - unit testing

1. Three Laws of TDD

Law 1 Do not write production code before writing unit tests that cannot pass.

Law 2: You can only write unit tests that just fail to pass. Failure to compile does not count as failure.

Law Three: Only write production code that is just enough to pass the currently failing test.

Tests are written along with the production code, the tests are just written a few seconds before the production code.

2. Keep the test clean

The test code is as important as the production code and needs to be kept tidy enough.

Testing brings all the benefits.

Clean unit test code will bring many benefits to your code. The dirtier the tests, the dirtier the code will eventually become. If tests are missing, the code starts to rot.

3. Clean testing

Clean testing has a very important element: readability.

Test code should be clear, clean, and expressive enough. In the test, say a lot in as few words as possible.

Test mode: construction-operation-inspection,

The first link is to construct the test data

The second link is to operate the test data

The third link is to verify the operation Whether the expected results are obtained.

3.1 Testing language for specific fields

Using test language testing is more readable.

3.2 Double standards

The code in the test API has different engineering standards from the production code. It should be simple, concise, and expressive, but it must be as effective as the production code.

4. One assertion per test

Some people think that each test function should have one and only one assertion statement.

Test one concept each.

A better rule might be to only test one concept and do one thing in each test function.

5. F.I.R.S.T principle

Clean code should follow the following rules:

Fast testing should be fast enough. Tests should run quickly.

Independent tests should be independent of each other. One test should not set conditions for the next test.

Repeatable tests should pass repeatedly in any environment.

Self-Validating tests should have Boolean output. Whether it fails or passes, the conclusion should be drawn directly and clearly, rather than checking the log to confirm whether the test passed or not.

Timely tests should be written in a timely manner. Unit tests should be written just before the production code that makes them pass.

6. Summary

Testing is as important as code. It ensures and enhances the scalability, maintainability and reusability of production code. Keep your tests clean, expressive, and short. Invented as a testing API for domain-specific languages ​​to help you write your own tests.

In actual development, many teams, due to various external and internal factors, tight construction schedules, lack of time, heavy tasks, etc., do not have TDD or unit testing for many things. Even so, we still We must adhere to this principle and slowly move closer to the goal of unit testing...

You may like:

Gold Three Silver Four Job Hunting Season: Program Staff interview skills and resume

How to become an excellent full-stack engineer by self-study?

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template