Sử dụng Visual Studio tạo lớp Kiểm tra Đơn vị. Sau đó, bình luận trong, phương thức khởi tạo lớp. Bên trong nó thêm thuộc tính của bạn, sử dụng đối số testContext.Có phải TestContext.Properties có thể sử dụng được không?
Khi khởi động ứng dụng thử nghiệm, phương pháp này thực sự được gọi là cơ sở hạ tầng kiểm tra.
//Use ClassInitialize to run code before running the first test in the class
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
/*
* Any user defined testContext.Properties
* added here will be erased after this method exits
*/
testContext.Properties.Add("key", 1) ; // place the break point here
}
Sau khi rời khỏi MyClassInitialize, bất kỳ thuộc tính nào do người dùng thêm đều bị mất. Chỉ còn lại 10 "chính thức".
Trên thực tế, TestContext bị ghi đè, với bản inital chính thức, mỗi lần trước khi mỗi phương pháp thử nghiệm được gọi. Nó không chỉ ghi đè nếu người dùng có phương pháp khởi tạo thử nghiệm, các thay đổi được thực hiện trên đó được chuyển đến thử nghiệm.
//Use TestInitialize to run code before running each test
[TestInitialize()]public void MyTestInitialize(){
this.TestContext.Properties.Add("this is preserved",1) ;
}
Điều này có nghĩa là TestContext.Properties là "chủ yếu" chỉ đọc cho người dùng. Mà không được ghi rõ trong MSDN.
Dường như với tôi đây là thiết kế rất lộn xộn + triển khai. Tại sao có TestContext.Properties như một bộ sưu tập, ở tất cả? Người dùng có thể thực hiện nhiều giải pháp khác để khởi tạo lớp rộng.
Tôi chưa bao giờ hiểu mục đích của ngữ cảnh thử nghiệm mà tôi thực sự sử dụng. –
Mục đích được giải thích trong https://blogs.msdn.microsoft.com/vstsqualitytools/2006/01/09/using-testcontext-in-unit-tests/ –