Dependency Injection with Spring.Net p6
Posted On Friday, May 23, 2008 at at 10:32 PM by Unknown(Bài viết dịch từ bài Dependency Injection with Spring.Net của David Consdorf, thêm hành thêm tiêu rồi nấu lại bởi Nguyễn Thoại )
- Testing with Dependency Injection
- Một điểm thú vị nữa của Spring.NET là chúng ta có thể sử dụng Unit Test để test các component của chúng ta rất dễ dàng. Với khả năng thay đổi mối liên kết giữa các thành phần trong ứng dụng, người lập trình có thể tạo ra những “đối tượng giả” để test, vì vậy ta có thể test đoạn code họ đang viết mà không cần lo lắng đến những phần chưa hoàn thành của hệ thống. Điều này có thể lạ với một số bạn vì khái niệm unit testing không được dạy ở các trường đại học, đến khi đi làm ở một số công ty các bạn sẽ thường xuyên gặp khái niệm này. Ý tưởng cơ bản là những hàm, những đoạn code các bạn viết ra đều phải có một phần code khác để test ngay những hàm bạn tạo. Giả sử bạn viết một lớp tính điểm trung bình các môn Toán, Lý, Hóa của học sinh, trong lớp (class) của bạn sẽ gọi đến một lớp Utility tính trung bình của một người khác trong nhóm viết. Vấn đề bạn gặp phải là lớp Utility đó chưa được viết xong, như vậy không thể nào test được. Nhưng rất may là đã có Spring.NET sẽ giúp chúng ta gỡ rối vấn đề này.
- Một ví dụ khác, khi bạn đang viết một số lớp dịch vụ (service – BLL) cho ứng dụng nhưng tầng dữ liệu (DAL) vẫn chưa hoàn thành; hoặc có khi bạn đang viết phần mềm cho một khách hàng nước ngoài rất khó tính và họ không cho bạn truy cập vào server database của họ; với Spring.NET và Dependency Injection, bạn vẫn có thể test thử các lớp dịch vụ bằng cách tạo ra các Mock objects để điền dữ liệu chưa lấy được từ database mà không cần đến những đối tượng ở tầng dữ liệu, hay nói cách khác bạn cũng không cần đến database để test. Mock là một kĩ thuật lí thú để test ứng dụng rất linh động và tôi hi vọng có dịp sẽ chia sẽ những hiểu biết của mình với các bạn ở những bài viết sau. Trong phạm vi bài viết này tôi chỉ có thể giới thiệu Mock như là một framework giúp chúng ta tạo ra những object giả với những hàm hoạt động theo cách mà ta muốn. Trong trường hợp này nó sẽ tạo ra những object giả ở tầng dữ liệu và giả vờ như đã kết nối với database và trả về dữ liệu cho những lớp ở tầng dịch vụ. Sau này, khi chúng ta cần kết nối tầng dịch vụ với tầng dữ liệu, bạn chỉ cần thay đổi file cấu hình của Spring.
- Ngoài những điều kể trên, có một số kĩ thuật khác rất lí thú mà Spring.NET hỗ trợ bao gồm cả hệ thống test của chính Spring.NET. Vì vậy nếu bạn muốn tìm hiểu hãy đọc những bài viết khác liên quan đến vấn đề này ở trang web www.springframework.net
- More Spring.NET
- Conclusion
- Code Examples
- About the Author
- Work Experience
- Education
- About the Translator : Click here
(Các bạn đang xem phần 6)
Em làm cũng được một thời gian tương đối rồi. Nếu để diễn tả bài viết của bác bằng 2 từ, 4 tiếng thì sẽ là say mê và hả hê :D
please!!! Continue...........
Anh dịch rất hay và xúc tích. Hy vọng càng ngày càng thêm nhiều bài hay.
Bài viết rõ ràng và dễ hiểu, cảm ơn Thoại
Trình độ diễn đạt của bác thật perfect! Hi vọng bác tiếp tục có những bài viết mới