Trong bài viết này, tôi thăm dò về ba tư tưởng khôn cùng đặc biệt trong unit demo là Stub, Moông xã and Nhái, ý nghĩa sâu sắc khái niệm của bọn chúng là gì và chúng được dùng như thế nào vào trường hợp làm sao. Đầu tiên, chúng ta buộc phải định nghĩa unit kiểm tra là gì và bài bản TDD là điều đó làm sao. Những chúng ta cũng có thể tham khảo thêm số đông quan niệm bên trên sinh sống liên kết sau: unit-test-voi-phat-trien-phan-mem-hien-dai

Cả ba quan niệm Stub, Moông xã và Fake thường rất quan trọng đặc biệt vào unit thử nghiệm & nối liền với tư tưởng về “de-coupled” architecture kiến thiết. “de-coupling” architecture tất cả mục tiêu này là thi công áp dụng làm sao cho những chúng ta có thể tách bóc vận dụng ra thành số đông phần lẻ tẻ (phần nhiều unit) mà không bị tương quan vày số đông phần không giống hoặc chỉ bị tương quan một phương thức tối thiểu.

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

Bài Viết: Stub là gì

lấy ví dụ, tôi chứa một class phải viết unit thử nghiệm and đông đảo class khác tác động nhỏng kết nối DB hoặc Điện thoại tư vấn service api. Hiên giờ đồng hồ, tôi mong muốn check hầu hết class, thúc đẩy phần đa đối tượng người dùng người dùng dựa dẫm là không chuẩn bị, vì vậy trong điều kiện này, tôi rất cần được triển khai triển khai một đối tượng người dùng người dùng Mochồng hoặc Nhái để check class của mình. Các bạn sẽ bỏ lỡ thực tế vận chuyển DB hoặc kết quả đích thực của bài toán Điện thoại tư vấn service. Theo phương pháp này những chúng ta cũng có thể check logic bao gồm của class cơ mà chúng ta nên tiến hành thực hiện unit kiểm tra.


Nội Dung


1. Moông xã là gì?

Mochồng object (MO) là 1 trong những đối tượng người sử dụng người dùng ảo tế bào rộp đầy đủ quan trọng đặc biệt và hành vi giống hệt như đối tượng người sử dụng người dùng thực đc truyền vào bên trong khối hận mã sẽ quản lý nhằm check tính chính xác của không ít chuyên chở phía bên trong. Moông chồng object gồm có đặc biệt sau:


Dễ chơi rộng đối tượng người dùng thực mà lại vẫn duy trì đc sự thúc đẩy cùng với đều đối tượng người dùng khác.

Không lặp lại content đối tượng người sử dụng người tiêu dùng thực.

Được phxay thiết lập số đông tinh thần riêng biệt hỗ trợ mang đến Việc triển khai triển khai unit test.

2. Stub là gì?

Stub là một công tác hoặc yếu tố giả lập (sửa chữa mang lại lịch trình hoặc nhân tố không code dứt để kiểm thử) nó bắt buộc áp dụng để kiểm thử… ví dụ, vào một dự án bao gồm 4 modules, nhưng mà đến cơ hội test ngoại giả một module không code xong, để test đc thì cần có 4 modules này, vậy thì cần có một chương trình mang lập module này nhằm triển khai xúc tiến demo. Chương trình trả lập mang lại module này đc Gọi là STUB.

Oh, cả nhị các hình như nặng nề hiểu!

lúc tôi mở đầu dò la về unit thử nghiệm, tôi rất khó khăn nhằm nhận thấy được Moông xã & Stub khác nhau điều này nào, cả nhì đều rất như thể nhau vào có mang. Nhưng một khi chúng ta phát âm đúng mực rồi thì các bạn sẽ nhận ra sự biệt lập đích thực.

Một Stub đã không còn trả về hiệu quả unit test là fail cùng vì chúng ta biết các gì bạn đang thực hiện thực hiện and nguyên do tại sao bạn đang thực hiện tiến hành nó, Nó đc cần sử dụng là nhằm sửa chữa thay thế gắng cho 1 module và đã được đưa sử là đề xuất thực hiện thực thi đúng gần như trách nhiệm đc giao. Dù vậy, Mock object chỉ là một đối tượng người dùng người dùng cơ mà bắt trước số đông đối tượng người dùng người tiêu dùng đích thực. Nếu xúc tích thiết yếu của method là sai thì các unit kiểm tra vẫn fail ngay cả Lúc các bạn tùy chỉnh cấu hình moông chồng object đúng mực.


3. Fake là gì

Nlỗi chúng ta biết, ý nghĩa sâu sắc của Nhái là trả, không quá. Đây là 1 ý nghĩa tóm lại, nó rất có thể chỉ cho tới một một object thiệt hoặc một object giả hoặc đưa hoặc một trang bị nào đấy không tồn tại thiệt.

do đó, Nhái là một thuật ngữ tầm thường phổ biến, nhưng hoàn toàn có thể trỏ mang lại tự nhiên điều gì.

Xem thêm: Guide Lulu Mùa 11: Bảng Ngọc Bổ Trợ Và Cách Lên Đồ Cho Lulu, Lulu Build Guide : Lulu

4. Ví dụ:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ConsoleApp.Company; namespace ConsoleApp public class ExtensionManager : IExtensionNanager } public class StubExtensionManager : IExtensionNanager } public class FileChecker public FileChecker(IExtensionNanager tmpManager) public Boolean CheckFile(String FileName) } }

Code đó là khôn cùng đơn giản để phát âm. Các bạn đã có không ít một class FileChecker dễ chơi. Class quản ngại trị FileExtension thực tiễn ko đc implement không hề thiếu và cho nên vì thế chúng ta chứa một phiên bản sơ knhị của class. Các chúng ta có thể cảm nhận rằng phần nhiều chức năng CheckExtension sẽ luôn luôn đúng, khi chúng ta khái niệm một cách thức rõ ràng.

Bên bên dưới này là code unit test:

using System; using System.Web.Mvc; using Microsoft.VisualStudio.

TestTools.UnitTesting; using MVCApplication.Controllers; using Moq; using ConsoleApp.Company; using ConsoleApp; namespace TestMVC } }

And code unit demo trên vẫn luôn luôn luôn pass cùng vì chúng ta vẫn cần sử dụng đa số công dụng đc định nghĩa Stub & nó sẽ bị để cho code unit test luôn đúng.

Vậy một đợt tiếp nhữa để làm rõ rộng phát minh bước đầu, Stub được dùng để luôn luôn luôn luôn vượt qua unit test bởi vì các bạn biết những gì các bạn vẫn tiến hành xúc tiến & trên sao? Mục đích của chúng ta là để hoàn toàn có thể pass qua phần unit demo này.


Thi công Mochồng trong ví dụ

Hiên giờ những các bạn sẽ tiến hành triển khai với cùng một Moông chồng object. Có rất đông các phương thức mocking không giống nhau, tuy vậy nhằm hiểu rõ rộng về thực ra tôi đã tiến hành thực hiện một phương thức mockig viết tay dễ chơi.

Một điểm đặc biệt quan trọng về moông chồng là, những chúng ta cũng có thể sử dụng một đối tượng người sử dụng người dùng mochồng để check class bao gồm vào unit chạy thử.

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ConsoleApp.Company; namespace ConsoleApp public class MockExtensionService : IServiceProvider } } public class ExtensionManager : IServiceProvider } public class ExtensionAnalyzer public void ExtensionCheck(string fileName) } }

Thi công siêu dễ chơi, chúng tôi đã chỉ cần tiến hành tiến hành một class Moông xã and class đó sẽ bắt trước số đông công dụng trong thực tế. Bên bên dưới này là code unit demo.

using System; using System.Web.Mvc; using Microsoft.VisualStudio.TestTools.UnitTesting; using MVCApplication.Controllers; using Moq; using ConsoleApp.

Company; using ConsoleApp; namespace TestMVC } }

Kết luận

Trong bài viết này, chúng ta sẽ học tập được những khái niệm về Stub và Moông chồng vào unit kiểm tra. Tôi hi vọng nội dung bài viết này sẽ cứu bạn hiểu rõ hơn về bọn chúng. Các bạn phải chọn cần sử dụng Stub hay Mock trong các điều kiện riêng biệt. Một stub sẽ cứu bạn lúc mình thích thay thế phần lớn chức năng trong thực tiễn, Moông chồng đang cung cấp lúc bạn thích bắt chước phần đa công dụng trong thực tiễn.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *