Showing posts with label Unit Test. Show all posts
Showing posts with label Unit Test. Show all posts

Friday, March 18, 2011

Unit Testing: Giới thiệu về Moq

Moq cũng giống như RhynoMock hay TypeMock, là một thư viện .NET framework cho việc tạo các mock object. Nó hầu như sử dụng C# Lambda expression để tạo các kỳ vọng và kết quả trả về. Tuy nhiên, nó cũng bị chỉ trích vì hầu như không có sự phân biệt nào giữa Mock và Stub.
Moq cho phép bạn dể dàng thay đổi behaviour (hành vi) từ “Bắt buộc” sang “Tùy chọn” (Trong đó tùy chọn là ngầm định). Hành vi bắt buộc không cho phép bất kỳ triệu gọi nào đến mock object trừ khi trước đó đã được khai báo kỳ vọng tương ứng. Hành vi tùy chọn sẽ trả lại giá trị ngầm định nếu không được khai báo kỳ vọng. Ngoài ra bạn có thể thực hiện cấu hình hành vi theo ý đồ của bạn khi sử dụng.

Unit Testing: Mock không phải là Stub

Thuật ngữ 'Mock Object (Đối tượng giả định)' đã trở nên phổ biến, nó mô tả về các đối tượng trong trường hợp đặc biệt bắt chước các đối tượng thật trong kiểm thử. Hầu hết các ngôn ngữ lập trình bây giờ đều có framework giúp đơn giản hóa việc tạo các mock object. Mock object thường không thực tế, tuy nhiên là hình mẫu của đối tượng kiểm thử trong trường hợp đặc biệt và cho phép một cách khác của việc kiểm thử. Trong bài viết này, tôi sẽ giải thích các mock object làm việc như thế nào, bằng cách nào chúng giúp cho việc kiểm thử dựa trên xác nhận tình trạng thạng thái, và bằng cách nào sử dụng chúng để phát triển một cách khác của việc kiểm thử.