Làm thế nào để viết bài kiểm tra đơn vị trong Golang?

Lam The Nao De Viet Bai Kiem Tra Don Vi Trong Golang



Nếu bạn là nhà phát triển Go, bạn sẽ biết tầm quan trọng của việc kiểm tra để đảm bảo chất lượng mã của bạn. Viết bài kiểm tra đơn vị là một phần thiết yếu của quá trình phát triển và nó có thể giúp bạn bắt lỗi sớm, tiết kiệm thời gian và tiền bạc về lâu dài. Trong bài viết này, chúng ta sẽ thảo luận về cách viết bài kiểm tra đơn vị ở Golang.

Kiểm tra đơn vị là gì?

Bước đầu tiên là hiểu những gì kiểm tra đơn vị có nghĩa. Kiểm tra đơn vị đề cập đến quá trình kiểm tra các đơn vị hoặc mô-đun mã nhỏ để đảm bảo rằng mỗi mô-đun đó hoạt động như mong đợi. Kiểm tra đơn vị được sử dụng để loại bỏ các vấn đề khỏi mã, cải thiện tính ổn định của mã và đảm bảo tính chính xác khi cập nhật mã. Giai đoạn ban đầu của kiểm thử phần mềm là bài kiểm tra đơn vị , tiếp theo là kiểm tra giao diện người dùng và kiểm tra tích hợp.

Gói thử nghiệm

ở Golang, kiểm tra đơn vị được thực hiện bằng cách sử dụng một gói gọi là thử nghiệm . Gói cung cấp các chức năng khác nhau cho phép chúng tôi kiểm tra mã của mình. Mã Go có thể được kiểm tra tự động với sự trợ giúp của gói kiểm tra.







Chương trình ví dụ để kiểm tra

Chúng tôi cần một số mã cho các bài kiểm tra của chúng tôi để phân tích trước khi chúng tôi có thể viết bất kỳ bài kiểm tra đơn vị . Chúng ta sẽ tạo một chương trình nhỏ cộng hai số.



gói chính

nhập khẩu (
'fmt'
)
chức năngThêm ( Một int , b int ) int {
trở lại Một + b
}

chức năng chính ( ) {
fmt. Println ( Thêm vào ( 2 , 3 ) )
}

Đoạn mã trên xác định Thêm vào() hàm cộng hai số Một b , làm đầu vào và đầu ra kết quả dưới dạng số nguyên. Cộng các số 2 và 3 là tất cả những gì chức năng chính thực hiện trước khi in kết quả.







Quy ước viết bài kiểm tra đơn vị trong Go

Mỗi dự án Go phải có một tệp thử nghiệm riêng chứa tất cả các thử nghiệm cho dự án đó. Tệp phải có cùng tên với tệp đang được kiểm tra và phải có _test.go được thêm vào cuối tên tệp. Ví dụ: nếu chúng tôi muốn kiểm tra một tệp có tên máy tính.go , chúng ta nên đặt tên cho tệp thử nghiệm của mình máy tính_test.go .

Đó là thông lệ tiêu chuẩn cho Đi kiểm tra tập tin được đặt trong cùng một gói hoặc thư mục với mã mà họ đang đánh giá. Khi bạn sử dụng lệnh go build, trình biên dịch sẽ không tạo các tệp này, vì vậy bạn không cần phải lo lắng về việc chúng sẽ hiển thị trong quá trình triển khai.



để viết một bài kiểm tra đơn vị trong Go, chúng ta cần sử dụng thử nghiệm bưu kiện. Chúng ta có thể bắt đầu mỗi chức năng kiểm tra bằng từ Bài kiểm tra và sau đó thêm mô tả về những gì chúng tôi muốn kiểm tra. Ví dụ, kiểm tra bổ sung hoặc kiểm tra phép trừ . Sau đó, chúng ta có thể viết mã kiểm tra để kiểm tra xem chức năng mà chúng ta đang kiểm tra có trả về kết quả như mong đợi hay không.

Trong Go, mỗi chức năng kiểm tra phải bắt đầu bằng câu lệnh t := thử nghiệm.T{}. Tuyên bố này tạo ra một cái mới thử nghiệm đối tượng mà chúng ta có thể sử dụng để kiểm tra xem bài kiểm tra đã đạt hay chưa. Sau đó chúng ta có thể sử dụng t.Errorf() chức năng in thông báo lỗi nếu kiểm tra không thành công.

Làm thế nào để viết mã kiểm tra?

Khi viết bài kiểm tra đơn vị trong Go, điều quan trọng là bắt đầu bằng cách chỉ định gói mà bạn muốn kiểm tra. Sau khi nhập gói thử nghiệm, bạn có thể truy cập các loại và phương thức khác nhau mà gói xuất, bao gồm thử nghiệm.T kiểu. Bản thân logic thử nghiệm sau đó được viết trong một hàm bắt đầu bằng từ khóa 'Bài kiểm tra' theo sau là một tên mô tả, chẳng hạn như TestAdd() . Trong chức năng này, bạn có thể bao gồm mã cho thử nghiệm và mọi xác nhận cần thiết để xác minh hành vi dự kiến.

Tóm lại, các đặc điểm của một bài kiểm tra trong Go như sau:

  • Tham số duy nhất và duy nhất được yêu cầu là t *thử nghiệm.T
  • Chức năng kiểm tra bắt đầu bằng từ Kiểm tra và sau đó được theo sau bởi một từ hoặc cụm từ bắt đầu bằng chữ in hoa.
  • Để chỉ ra lỗi, chức năng kiểm tra nên gọi một trong hai t.Errorf hoặc t.Thất bại, và để cung cấp thông tin gỡ lỗi bổ sung mà không gây ra lỗi, có thể sử dụng t.Log.
  • Để cung cấp thông tin gỡ lỗi liên tục, hãy sử dụng t.Log.
  • Các bài kiểm tra được lưu trữ trong các tệp có tên foo_test.go , Ví dụ, math_test.go .

Đóng tệp sau khi lưu nó.

gói chính

nhập khẩu (
'thử nghiệm'
)

funcTestAdd ( t * thử nghiệm. t ) {
kết quả := Thêm vào ( 2 , 3 )
nếu như kết quả != 5 {
t. Lỗi ( 'Thêm(2, 3) = %d; muốn 5' , kết quả )
}
}

Các Thêm vào() chức năng được kiểm tra bởi TestAdd() chức năng, được xác định trong thử nghiệm này. Nó sử dụng các số 2 và 3 để gọi Add, sau đó nó xác nhận rằng kết quả là 5. Một thông báo lỗi được in ra nếu kết quả nhỏ hơn 5 khi t.Errorf() Được gọi.

Cuối cùng, điều quan trọng cần biết là Go có một công cụ kiểm tra tích hợp có tên là đi xét nghiệm. Công cụ này chạy tất cả các thử nghiệm trong dự án và cung cấp một báo cáo về kết quả. Đi kiểm tra phải được nhập vào thiết bị đầu cuối trong khi ở trong thư mục dự án để bắt đầu kiểm tra. Kết quả là tất cả các bài kiểm tra trong thư mục đó sẽ chạy.

< mạnh > đi kiểm tra < Bài kiểm tra - tài liệu - tên > _Bài kiểm tra. đi mạnh >

Kết quả bài kiểm tra đơn vị

Đầu ra sẽ hiển thị cho bạn các chức năng kiểm tra đã vượt qua, không thành công hoặc bỏ qua.

ĐẠT hoặc OK biểu thị rằng mã đang hoạt động như dự kiến. Bạn sẽ nhận THẤT ​​BẠI nếu một thử nghiệm thất bại.

Các _test.go hậu tố là hậu tố duy nhất mà lệnh con go test kiểm tra trong các tệp. Sau đó, hãy kiểm tra tìm kiếm (các) tệp đó để tìm bất kỳ chức năng đặc biệt nào, chẳng hạn như func Kiểm traXxx và một số người khác. Tiến hành kiểm tra các bản dựng và gọi các chức năng này một cách chính xác, thực thi chúng, thu thập và báo cáo kết quả, cuối cùng dọn sạch mọi thứ trong một gói chính tạm thời.

Bước cuối cùng là tích hợp các thử nghiệm của bạn vào quy trình phát triển của bạn. Cách thực hành tốt nhất là chạy thử nghiệm mỗi khi bạn chuyển giao mã của mình vào kho lưu trữ. Việc tích hợp các thử nghiệm vào quy trình phát triển của bạn đảm bảo rằng mã của bạn được kiểm tra liên tục và mọi sự cố đều được giải quyết trước khi triển khai.

Phần kết luận

Viết bài kiểm tra đơn vị là một thành phần quan trọng của quá trình phát triển phần mềm vì nó đảm bảo rằng mã của bạn có khả năng mở rộng, có chức năng và hiệu quả. Thư viện thử nghiệm Go rất dễ sử dụng và dễ sử dụng. Bạn sẽ có thể tạo Golang bài kiểm tra đơn vị chất lượng cao nhất bằng cách làm theo các thủ tục được liệt kê ở trên. Hãy nhớ tích hợp các thử nghiệm của bạn vào quy trình phát triển để đảm bảo rằng mã của bạn được kiểm tra liên tục và mọi sự cố đều được giải quyết trước khi triển khai.