Không giống như DynamicTest
, ParameterizedTest
không phải là một phần của lõi junit-jupiter-api
nhưng là trong một vật riêng biệt có tên junit-jupiter-params
(xem 3.12.1. Required Setup). Điều này là do một trong những nguyên tắc cốt lõi của JUnit 5 là "thích các điểm mở rộng hơn các tính năng" (Core Principles · junit-team/junit5 Wiki).
API JUnit Jupiter xác định cách tạo và đăng ký thử nghiệm động làm điểm mở rộng cho JUnit trong khi JUnit Jupiter Params định nghĩa API cấp cao hơn để xác định các thử nghiệm được tham số hóa.
JUnit 5.0 M5 Milestone Chủ đề của hiện tại là "vùng chứa động và thay đổi API nhỏ". Với những thay đổi dự kiến này, các nhà phát triển sẽ không chỉ có thể tạo ra các bài kiểm tra động mà còn là các bài kiểm tra động (các thùng chứa động chứa các thùng chứa và/hoặc kiểm thử động khác). Như vậy sẽ chứng minh, tôi nghĩ, rất hữu ích cho việc tạo ra các bài kiểm tra giống như đặc điểm kỹ thuật. Tóm lại, ý tưởng như tôi hiểu là lần đầu tiên phát hành các điểm mở rộng lõi thông qua các API "cấp thấp" (ví dụ: các thùng chứa/kiểm tra động) và sau đó tạo và khuyến khích các bên thứ ba tạo các tiện ích mở rộng tận dụng chúng (ví dụ: được tham số hóa kiểm tra).
Câu hỏi hay. Vì nó là viết tắt của kiểm tra động thực sự không có một ứng dụng rõ ràng, đặc biệt là vì chúng không được hỗ trợ bởi một điểm mở rộng (xem [# 371] (https://github.com/junit-team/junit5/issues/371)) . – Nicolai
Cảm ơn nhận xét của chúng tôi @Nicolai. Tôi đọc đầu vào của bạn và tôi nghĩ rằng tôi hiểu điểm của bạn là gì. Tuy nhiên, quan điểm của tôi ở đây không phải là về cách để tạo ra các bài kiểm tra động, chỉ để hiểu trường hợp sử dụng mà các bài kiểm tra động đặc biệt hữu ích. Tôi không chắc chắn cách thử nghiệm động được hỗ trợ tiện ích mở rộng sẽ trả lời câu hỏi này. Tôi muốn biết những vấn đề mà các nhà phát triển đang cố gắng giải quyết bằng cách giới thiệu các bài kiểm tra động. – Yasin
Về sau: Thử nghiệm động đã được tạo dài trước khi thử nghiệm được tham số hóa. Lý do đưa chúng vào là đảm bảo rằng các nhà bảo trì công cụ nhận thức được thực tế là các thử nghiệm có thể được tạo ra trong thời gian chạy. Ồ, tôi nhớ rằng một lý do là cho phép [kiểm tra lambda] (https://blog.codefx.org/libraries/junit-5-dynamic-tests/#Lambda-Tests). – Nicolai