Unit tests cause pain. Unit tests, by themselves, do not solve problems, do not make users happy, do not make maintainers happy, do not make a better product, and do not improve design. Unit tests make certain things hurt; nothing more and nothing less. But pain can indicate something is wrong and can lead you to do something else.
The first assumption behind unit tests (and bodily pain) is that if something hurts we'll pay attention and do something else instead. The second assumption is that what we do as an alternative will not only hurt less but make things better. For example, since unit tests make singletons and hard coded dependancies so painful, we can rely on dependency injection techniques and the single responsibility principal. This should cause code that is easier to test and understand and that responds to rapidly changing requirements.
So unit tests are one way to show what hurts and needs attention and avoid blundering into bad and potentially project-killing designs. The problem is when we can't or don't change how things are done. If we must rely on singletons, the filesystem, database, complex api calls, undefined behavior, or slow techniques then writing and running the unit tests will hurt. In these cases the costs of writing and maintaing unit tests can outweigh the benefits of running those tests.
Compile and Execute Java Online - Try and experience the best cloud computing where you can edit, compile, ... Compile Preview | Execute | Share Code.
Thursday, December 23, 2010
Subscribe to:
Post Comments (Atom)
Popular Posts
-
Pro form comment for blogger [FD's BlOg] - Chúng ta có lẽ khá quen với form comment của blogger , với tính năng hiển thị thời gian comm...
-
Let's say you're a developer on a C# app and just got a batch of new requirements. Let's also say that it has a fairly simple re...
-
Bước 1 . Sử dụng ảnh rocket.psd để import vào trong dự án Flash của bạn. Xây dựng 2 layer để chứa tên lửa và phần nhiên liệu bị đốt cháy. Bư...
-
Đầu năm đầu tháng khai xuân một bài. Chúc mọi người một năm mới đầy sức khoẻ, may mắn, hạnh phúc. Mình về tết cũng rảnh đôi chút, sửa lại ch...
-
[FD's BlOg] - Adnet là một hệ thống quảng cáo trực tuyến trên nền tảng mạng Internet mà công cụ chính là các Website & Blog. Adnet ...
-
Khi lập trình, chúng ta lưu các biến trong bộ nhớ máy tính, nhưng máy tính cần phải biết loại dữ liệu mà chúng ta muốn lưu chúng, khi đó c...
-
If you use a script that runs another script which starts a java virtual machine, you should need to specify which java command you want to ...
-
[FD's BlOg] - Hôm nay mình lại quay về với menu cho blog. Và bài này mình xin giới thiệu 9 kiểu menuside cực kì bắt mắt. Xem demo trực ...
-
25+ steps for creating a 3D Text Scene using Photoshop [FD's BlOg] - Trong hướng dẫn này, chúng ta sẽ tạo ra một hình ảnh 3D với cảnh t...
-
RSS Feeds by Label [FD's BlOg] - Một thủ thuật tạo link feed cho từng nhãn, chuyên mục. Với link feed thông thường thì nó sẽ hiển thị tấ...
No comments:
Post a Comment