2013-01-14 27 views
8

Tôi đang sử dụng MSTest (VS2008) và tôi cần phải tồn tại một biến giữa các thử nghiệm. Tuy nhiên biến được khởi tạo lại giữa mỗi lần kiểm tra.Làm cách nào để duy trì các biến giữa các thử nghiệm trong MSTest?

Theo quan điểm thứ ba đề cập trong this answer,

MSTest luôn khởi tạo một thể hiện mới của lớp kiểm tra cho mỗi phương pháp thử nghiệm được thực thi.

Có cách nào đơn giản để giữ giá trị của một biến giữa các thử nghiệm hoặc bằng cách nào đó ngăn chặn hành vi này không?

+2

Tại sao bạn sẽ muốn làm điều đó không ?? –

+0

Bạn có thể vui lòng đăng mã của mình không? Biến của bạn được khai báo ở đâu? – Schaliasos

+0

@StefanSteinegger Tôi đang chạy thử nghiệm tích hợp liên quan đến REST API của bên thứ ba - tạo một mục, truy xuất thuộc tính được tạo phía máy chủ, sau đó sử dụng nó cho một cuộc gọi khác. Có vẻ như không hợp lý để stub toàn bộ điều xem xét họ đã có một sandbox đầy đủ chức năng. Tôi chắc chắn có rất nhiều lý do chính đáng khác để làm điều này. – Andrey

Trả lời

9

Sử dụng một biến thành viên tĩnh:

static int _test = 0; 

[TestMethod] 
public void __Test1() 
{ 
    _test += 1; 
    Assert.IsTrue(_test == 1); 
} 

[TestMethod] 
public void __Test2() 
{ 
    _test += 1; 
    Assert.IsTrue(_test == 2); 
} 
+0

Hoạt động hoàn hảo, cảm ơn bạn. – Andrey

+4

Về mặt kỹ thuật chính xác, nhưng khẳng định _test == 2 là một ví dụ rất xấu. a) Nó không thành công khi chạy một mình b) không có bảo đảm rằng các thử nghiệm được chạy theo một thứ tự nhất định c) bạn nên sử dụng Assert.AreEqual khi so sánh các giá trị. –

+1

@StefanSteinegger - chắc chắn là điểm hợp lệ. Sự tập trung chắc chắn nên được sử dụng biến tĩnh như là một cách để đạt được những gì OP đang yêu cầu. –

Các vấn đề liên quan