Stub la gi

Bài viết Stub Là Gì – Method Stub thuộc chủ đề về Wiki How thời gian này đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng https://NaciHolidays.vn/ tìm hiểu Stub Là Gì – Method Stub trong bài viết hôm nay nha !

Trong bài viết này, tôi thăm dò về ba khái niệm rất quan trọng trong unit test là Stub, Mock and Fake, ý nghĩa khái niệm của chúng là gì and chúng đc dùng như vậy nào trong tình huống nào. Trước tiên, các bạn cần định nghĩa unit test là gì and quy mô TDD là như vậy nào. Những bạn cũng khả năng đọc thêm những khái niệm trên ở kết nối sau: unit-test-voi-phat-trien-phan-mem-hien-dai

Cả ba khái niệm Stub, Mock and Fake đều rất quan trọng trong unit test and gắn liền với định nghĩa về “de-coupled” architecture design. “de-coupling” architecture có mục đích này là thiết kế ứng dụng sao cho các bạn khả năng tách ứng dụng ra thành những phần riêng biệt (những unit) mà không bị liên quan bởi những phần khác hoặc chỉ bị liên quan một cách thức ít nhất.

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

Ví dụ, tôi chứa một class cần viết unit test and những class khác tác động như kết nối DB hoặc call service api. Hiên giờ, tôi muốn check những class, địa chỉ những đối tượng người dùng dựa dẫm là chưa chuẩn bị, vì thế trong điều kiện này, tôi cần phải tiến hành triển khai một đối tượng người dùng Mock hoặc Fake để check class của tớ. Các bạn sẽ bỏ lỡ thực tiễn vận động DB hoặc kết quả thực sự của việc call service. Theo cách thức này các bạn khả năng check logic chính của class mà các bạn cần tiến hành triển khai unit test.

1. Mock là gì?

Mock object (MO) là một đối tượng người dùng ảo mô phỏng những đặc biệt and hành vi y như đối tượng người dùng thực đc truyền vào bên phía trong khối mã đang vận hành nhằm check tính chính xác của những vận động bên phía trong. Mock object có những đặc biệt sau:

Dễ chơi hơn đối tượng người dùng thực nhưng vẫn giữ đc sự tương tác với những đối tượng người dùng khác.

Không lặp lại content đối tượng người dùng thực.

Được phép thiết lập những trạng thái riêng giúp đỡ cho việc tiến hành triển khai unit test.

2. Stub là gì?

Stub là một chương trình hoặc thành phần giả lập (thay thế cho chương trình hoặc thành phần chưa code xong để kiểm thử) nó cần dùng để kiểm thử… ví dụ, trong một dự án có 4 modules, nhưng đến lúc test mà còn một module chưa code xong, để test đc thì cần có 4 modules này, vậy thì cần có một chương trình giả lập module này để tiến hành triển khai test. Chương trình giả lập cho module này đc gọi là STUB.

Oh, cả hai đều hình như khó hiểu!

Khi tôi khởi đầu thăm dò về unit test, tôi cực khó để nhận ra đc Mock and Stub khác nhau như vậy nào, cả hai đều rất giống nhau trong khái niệm. Nhưng một khi bạn hiểu đúng mực rồi thì bạn sẽ nhận biết sự khác biệt thực sự.

Một Stub đã hết trả về kết quả unit test là fail bởi lẽ bạn biết các gì bạn đang tiến hành triển khai and lý do tại sao bạn đang tiến hành triển khai nó, Nó đc dùng là để thay thế thế cho một module và đã được giả sử là phải tiến hành triển khai đúng những nhiệm vụ đc giao. Tuy vậy, Mock object chỉ là một đối tượng người dùng mà bắt chước những đối tượng người dùng thực sự. Nếu logic chính của method là sai thì những unit test sẽ fail ngay cả khi các bạn thiết lập mock object đúng mực.

3. Fake là gì

Như các bạn biết, ý nghĩa của Fake là giả, không thật. Đây là một ý nghĩa tóm lại, nó khả năng chỉ tới một một object thật hoặc một object giả hoặc giả hoặc một đồ gì đó không có thật.

Bởi vậy, Fake là một ngôn từ chung chung, mà khả năng trỏ đến ngẫu nhiên điều gì.

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 đây là rất dễ chơi để hiểu. Các bạn đã có rất nhiều một class FileChecker dễ chơi. Class quản trị FileExtension thực tiễn không đc implement đầy đủ and vì thế các bạn chứa một phiên bản sơ khai của class. Các bạn khả năng cảm nhận rằng những chức năng CheckExtension sẽ luôn luôn đúng, khi các bạn định nghĩa một cách thức rõ nét.

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

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

Xem Ngay: Từ Là Gì – Từ And Chữ

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

And code unit test trên sẽ luôn luôn pass bởi lẽ các bạn đã dùng những chức năng đc định nghĩa Stub and nó sẽ bị khiến cho code unit test luôn đúng.

Vậy một lần nữa để làm rõ hơn ý tưởng bắt đầu, Stub đc dùng để luôn luôn vượt qua unit test bởi lẽ các bạn biết các gì các bạn đang tiến hành triển khai and tại sao? Mục đích của các bạn là để khả năng pass qua phần unit test này.

Thi công Mock trong ví dụ

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

Một điểm quan trọng về mock là, các bạn khả năng dùng một đối tượng người dùng mock để check class chính trong unit test.

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 rất dễ chơi, công ty chúng tôi đã chỉ cần tiến hành triển khai một class Mock and class đó sẽ bắt chước những chức năng thực tiễ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.

Xem Ngay: – Kiến Thức

Company; using ConsoleApp; namespace TestMVC } }

Kết luận

Trong bài viết này, các bạn đã học đc các khái niệm về Stub and Mock trong unit test. Tôi hy vọng bài viết này sẽ cứu bạn hiểu rõ hơn về chúng. Các bạn cần phải chọn dùng Stub hay Mock trong các điều kiện riêng biệt. Một stub sẽ cứu bạn khi bạn thích thay thế những chức năng thực tiễn, Mock sẽ hỗ trợ khi bạn thích bắt chước những chức năng thực tiễn.

Thể Loại: Chia sẻ trình bày Kiến Thức Cộng Đồng

Nếu có bắt kỳ câu hỏi thắc mắt nào vê Stub Là Gì – Method Stub hãy cho chúng mình biết nha, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình nâng cao hơn hơn trong các bài sau nha <3 Bài viết Stub Là Gì - Method Stub ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết Stub Là Gì - Method Stub Cực hay ! Hay thì hãy ủng hộ team Like hoặc share. Nếu thấy bài viết Stub Là Gì - Method Stub rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nha!!