Stub Là Gì

Tôi đang phát âm các nội dung bài viết khác nhau về chế độ nhạo báng cùng sơ knhị trong xem sét, bao hàm Mocks Ar"t Arub của Martin Fowler , tuy vậy vẫn không hiểu biết sự khác hoàn toàn.

Bạn đang xem: Stub là gì


có thể trùng lặp Tổng quan về thuật ngữ xem sét đơn vị chức năng (sơ khai so với mang, tích hợp so với tương tác)? , whats-the-sự khác hoàn toàn thân mang mạo-chế nhạo cùng bướng bỉnh
OP Vì không có sự khác biệt. Bài viết này, được cộng đồng hâm mộ, là - với tất cả sự tôn kính - tạo nên rất nhiều sản phẩm công nghệ trlàm việc nên cạnh tranh phát âm bằng phương pháp thêm ý nghĩa bổ sung cho những từ bỏ dễ nắm bắt khác cùng tạo nên phần đa trang bị trlàm việc cần phức hợp ko cần thiết. Mochồng chỉ là một trong những trả, một cái nào đó chạy xúc tích và ngắn gọn kinh doanh đưa thế vì chưng thực. Kiểm tra hành động cuối cùng là tuyển lựa của khách hàng, tuy vậy nó vẫn là 1 trong những đưa. Hoặc bất cứ điều gì bạn có nhu cầu Call nó, cơ mà làm cho nó MỘT. Đừng chẻ một tua lông. Giữ cho nó đơn giản và dễ dàng, để đều tín đồ rất có thể đọc tư tưởng của công ty một biện pháp tiện lợi - điều nhưng nội dung bài viết trên không thành công xuất sắc.
— WST
10
"Phân loại thân mang, đưa, với sơ khai cực kỳ ko đồng hóa trong các tài liệu." Với các trích dẫn. Vẫn là 1 trong những trong số những trích dẫn Wikipedia yêu mếm của mình - ví như một vật dụng như thế mãi mãi :) en.wikipedia.org/wiki/Mock_object
— JD.
11
rằng bài viết của Martin Fowler thực sự cực nhọc hiểu cho người new ban đầu.
— lmiguelvargasf
1
Theo phương pháp tôi gọi thì một cuống sẽ chỉ là 1 đối tượng người dùng bỏ đi mang đến bài xích bình chọn của khách hàng, giống hệt như một bộ sưu tập tài liệu mang. Moông xã đã là phiên bạn dạng được ghi đè cổ tối ưu của một sản phẩm công nghệ phức tạp hơn, nlỗi lớp hình thức dịch vụ với khá nhiều thủ tục khác nhau, mà lại chúng ta cũng có thể đang chuyển đổi hành vi, cho các thử nghiệm của chính mình. Hai đồ vật được áp dụng với mọi người trong nhà, hệt như bạn có thể chuyển một số đồ vật thể còn sơ knhị vào lớp bị nhạo báng của chính mình.
— JsonStatham mê

Câu trả lời:


746

Sơ khai

Tôi tin tưởng rằng sự biệt lập lớn nhất là 1 sơ khai nhưng chúng ta đang viết với hành động được xác định trước. Vì vậy, các bạn sẽ bao gồm một lớp triển khai sự phụ thuộc vào (siêu rất có thể là lớp trừu tượng hoặc giao diện) cơ mà nhiều người đang hàng nhái đến mục đích phân tách với những thủ tục sẽ được đưa ra cùng với các bình luận sẽ đặt. Họ sẽ không làm bất kể điều gì khác biệt với bạn đã viết mã nơi bắt đầu cho nó bên ngoài bài xích kiểm tra của người sử dụng.

Chế nhạo

Giả là một trong những phần cơ mà vào bài bác chất vấn của chúng ta, chúng ta cần cấu hình thiết lập với mong muốn ngóng của mình. Một bạn dạng trả không được tùy chỉnh cấu hình Theo phong cách được khẳng định trước nhằm các bạn bao gồm mã triển khai vào bài xích bình chọn của chính mình. Giả định theo cách được xác minh trong thời gian chạy vì chưng mã đặt hy vọng buộc phải chạy trước khi chúng có tác dụng bất cứ điều gì.

Sự khác hoàn toàn thân Mocks với Stub

Các thể nghiệm được viết bởi giả hay theo một initialize -> mix expectations -> exercise -> verifymẫu nhằm xem sét. Trong lúc sơ knhì viết sẵn sẽ theo một initialize -> exercise -> verify.

Sự tương đồng thân Mocks và Stub

Mục đích của tất cả nhị là thải trừ soát sổ toàn bộ các phụ thuộc của một lớp hoặc hàm nhằm các đánh giá của người sử dụng tập trung rộng và dễ dàng rộng giữa những gì chúng đã nỗ lực minh chứng.


Lời tựa

Có một số trong những khái niệm về những đối tượng, không tồn tại thiệt. Thuật ngữ phổ biến là đánh giá vội vàng đôi . Thuật ngữ này gồm những: giả , giả , còn sơ khai , giả .

Xem thêm: Hot Girl Trần Thanh Tâm Sinh Năm Bao Nhiêu, Thanh Tâm Tuyền

Tài liệu tmê mệt khảo

Theo bài viết của Martin Fowler :

Đối tượng giả được truyền bao phủ mà lại ko bao giờ thực sự được sử dụng. thường thì chúng chỉ được áp dụng nhằm điền vào danh sách tđam mê số. Các đối tượng người tiêu dùng giả thực thụ bao gồm các triển khai thao tác làm việc, dẫu vậy hay áp dụng một trong những phím tắt khiến cho bọn chúng không tương xứng nhằm chế tạo (một cơ sở dữ liệu trong bộ lưu trữ là 1 ví dụ tốt). Sơ khai hỗ trợ câu vấn đáp đóng vỏ hộp cho những cuộc hotline được tiến hành vào quá trình phân tích, thường xuyên không bình luận hoàn toàn cho bất kỳ điều gì bên phía ngoài hầu hết gì được thiết kế trong thí điểm. Sơ khai ai cũng hoàn toàn có thể lưu lại công bố về các cuộc hotline, chẳng hạn như một cổng ban bố email còn nhớ các tin nhắn nhưng nó "đang gửi" hoặc có thể chỉ có từng nào tin nhắn nhưng nó "sẽ gửi". Giả là các thứ họ đã nói ngơi nghỉ đây: những đối tượng người sử dụng được xây dựng sẵn với hồ hết kỳ vọng sinh ra đề xuất một điểm lưu ý chuyên môn của những cuộc gọi mà bọn chúng dự kiến ​​sẽ nhận thấy.

Phong cách

Mocks vs Stub = Thử nghiệm hành động đối với thể nghiệm Nhà nước

Nguyên tắc

Theo bề ngoài Kiểm tra chỉ một điều trong những bài kiểm tra , rất có thể có một trong những sơ knhị vào một bài bác chất vấn, nhưng mà nhìn bao quát chỉ có một bản đưa.

Vòng đời

Kiểm tra vòng đời với cuống:

Thiết lập - Chuẩn bị đối tượng người dùng đang được nghiên cứu và những hiệp tác viên sơ knhì của chính nó.bài tập - Kiểm tra công dụng.Xác minch tâm lý - Sử dụng các xác nhận nhằm bình chọn tinh thần của đối tượng.Teardown - Dọn dẹp tài nguim.

Kiểm tra vòng đời cùng với giả:

Cài đặt tài liệu - Chuẩn bị đối tượng người tiêu dùng đang rất được nghiên cứu.Thiết lập những kỳ vọng - Chuẩn bị các kỳ vọng vào trả được thực hiện vị đối tượng người tiêu dùng chủ yếu.Bài tập - Kiểm tra tính năng.Xác minch kỳ vọng - Xác minh rằng những cách thức đúng chuẩn đã có hotline vào đưa.Xác minh tâm trạng - Sử dụng những chứng thực nhằm kiểm tra tâm lý của đối tượng.Teardown - Dọn dẹp tài nguyên.

Tóm lược

Cả thí điểm đưa cùng sơ knhị những đưa ra câu vấn đáp cho câu hỏi: Kết quả là gì?

Thử nghiệm cùng với mang cũng quan liêu tâm: Làm nạm làm sao giành được kết quả?


Từ hầu hết gì chúng ta vẫn viết, tôi có thể nói rằng mocks = stub + mong rằng cùng xác minc, chính vì mocks "hỗ trợ câu trả lời đóng hộp cho những cuộc Gọi được triển khai trong bài bình chọn, thường ko phản hồi toàn bộ phần lớn lắp thêm bên phía ngoài gần như gì được lập trình sẵn vào bài bác kiểm tra" (hệt như sơ khai). Và ví dụ cơ mà Fowler diễn đạt là ví dụ về một cuống thực thụ là ví dụ về một điệp viên! Điều kia có nghĩa là một mochồng là 1 trong sơ knhị, với một gián điệp là 1 sơ khai. Và còn sơ knhì chỉ là 1 đối tượng người dùng gồm một số trong những cách tiến hành thao tác làm việc. Điều đó cũng lý giải vì sao Mockilớn không dùng cách làm stub ().
— kolobok