Để trả lời trực tiếp câu hỏi của bạn - không, tôi không tin hoặc là một mẫu chống khi được sử dụng đúng cách.
--- Câu trả lời dài dòng hơn ---
Từ kinh nghiệm của tôi, tôi nghĩ điều này phụ thuộc rất nhiều vào mục tiêu kiểm tra của bạn. Đây là quy tắc của ngón tay cái tôi đã sử dụng trong quá khứ và nó đã giúp tôi quyết định:
Bạn đang thực sự kiểm tra một đơn vị mã nhỏ? (Một bài kiểm tra đơn vị thực sự)
Nếu có, thì tôi đã thấy việc tạo dữ liệu bên trong bài kiểm tra chính xác dễ dàng hơn nhiều vì tôi có thể thấy những gì đang được truyền vào. Trong những trường hợp này, tôi thường sẽ tìm một thư viện giống như Jasmine để sử dụng vì tôi thấy rằng nó làm cho việc tạo và duy trì dữ liệu thử nghiệm dễ dàng hơn. Đó là một sở thích cá nhân - sử dụng bất cứ điều gì làm cho công việc của bạn dễ dàng hơn.
Nếu không, thì có lẽ bạn đang thực sự kiểm tra chính hệ thống. Trong những trường hợp này, tôi thường tải dữ liệu từ nguồn bên ngoài, lý do ở đây là:
- Thử nghiệm này không phải là về độ rõ ràng của mã đối với các lập trình viên (mặc dù điều đó vẫn quan trọng - ai đó phải duy trì điều này), đó là về việc chạy đủ các loại dữ liệu khác nhau thông qua toàn bộ khối hệ thống để chắc chắn rằng nó hoạt động hợp lý.
- Thường thì tôi sẽ viết mã hệ thống ống nước để tải và sử dụng dữ liệu thử nghiệm, nhưng chính dữ liệu đó được tạo bởi người khác (thường là nhân viên QA trong trường hợp của tôi). Những người này thường không phải là lập trình viên nên tôi không thể mong họ chỉnh sửa mã.
Vì vậy, câu trả lời dài, nó phụ thuộc vào những gì bạn đang thử nghiệm và tại sao. Cả hai cách tiếp cận đều hữu ích và có vị trí của chúng - chọn cách nào phù hợp nhất với tình huống của bạn.