Unit Testing – is it necessary

I have written a hell of a lot on unit testing, and given a lot of thought to this over the years – not necessarily on dev.to . I think I put some stuff on Quora too. I don’t include any code samples in here, just thinking through unit testing and inte…


This content originally appeared on DEV Community and was authored by zakwillis

I have written a hell of a lot on unit testing, and given a lot of thought to this over the years - not necessarily on dev.to . I think I put some stuff on Quora too. I don't include any code samples in here, just thinking through unit testing and integration testing. Am referring to c# .Net/.Net Core in this article.

I would advise the very old, but fantastic book - the art of unit testing.

Here is one article I wrote on thinking about data external to tests rather than stubbing way back to tease out integration testing and opening up unit tests to testers.

https://dev.to/zakwillis/novel-tips-on-unit-testing-avoiding-hard-coding-p8e

Unit tests, thinking them through

unit tests are documentation

I see unit tests as being there only as a living document on how the code works or is arranged. I barely write them despite having been through the process a lot.

unit tests prove that calculations work - good use case for unit tests

Most unit test benefit is gained when evaluating calculations and operations - small functions/units etc. The idea of isolating external resources/dependencies seems overbaked too.

unit tests involving testing data are probably best off being integration tests

NBI was a great .Net Data Testing framework. Seems like Cedric took his site down. Shame. It was a much better approach to use integration testing than unit test stubs for data logic testing.

unit tests enterprises vs software houses

  • Enterprises - low unit tests/high integration tests
  • Software Houses - high unit tests / low integration tests

Is creating unit tests valuable?

I really have to ask, if in most situations - unit testing is a worthy pursuit? The reason I ask this is for the following reasons;

  • The true number of test cases is far higher than can be manually coded.
  • Focusing on units does not necessarily focus on workflows.
  • Tests can go green without proving the unit works. False sense of security.
  • Business logic within unit tests can quickly become stale as domain logic requirements changes.
  • Black box testing. Testers hate unit tests as they are buried in code.

The satisfying part about unit tests?

  • Knowing certain code is covered.
  • Seeing a sea of green as the tests pass.
  • Integrating error checking/reporting through a CI tool to check whether the tests pass.
  • The team can see errors on the Continuous Integration Server and resolve them quickly.
  • A measurable indicator.

Thinking about unit tests

I wrote this article because it is abundantly clear to me that writing thousands of unit tests just to have a sea of green, that nobody knows how they work is probably a huge waste of time. Heresy we say. Development projects can be more about test coverage than the product.

The right unit tests are great at explaining the code. Furthermore, unit tests can signify breaking changes and this is great.

When developing complex logic, or using Test Driven Development, unit tests can be a good way to give other team members that the code works.

There is a final thing which escapes many people. Stable, well written code/applications which accepts consistent inputs and produces consistent testable outputs may not need any unit tests at all.


This content originally appeared on DEV Community and was authored by zakwillis


Print Share Comment Cite Upload Translate Updates
APA

zakwillis | Sciencx (2021-12-17T18:12:36+00:00) Unit Testing – is it necessary. Retrieved from https://www.scien.cx/2021/12/17/unit-testing-is-it-necessary/

MLA
" » Unit Testing – is it necessary." zakwillis | Sciencx - Friday December 17, 2021, https://www.scien.cx/2021/12/17/unit-testing-is-it-necessary/
HARVARD
zakwillis | Sciencx Friday December 17, 2021 » Unit Testing – is it necessary., viewed ,<https://www.scien.cx/2021/12/17/unit-testing-is-it-necessary/>
VANCOUVER
zakwillis | Sciencx - » Unit Testing – is it necessary. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/12/17/unit-testing-is-it-necessary/
CHICAGO
" » Unit Testing – is it necessary." zakwillis | Sciencx - Accessed . https://www.scien.cx/2021/12/17/unit-testing-is-it-necessary/
IEEE
" » Unit Testing – is it necessary." zakwillis | Sciencx [Online]. Available: https://www.scien.cx/2021/12/17/unit-testing-is-it-necessary/. [Accessed: ]
rf:citation
» Unit Testing – is it necessary | zakwillis | Sciencx | https://www.scien.cx/2021/12/17/unit-testing-is-it-necessary/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.