Tôi muốn viết bài kiểm tra đơn vị cho lớp dưới đây.
Nếu tên không phải là "MyEntity" thì mgr phải để trống.
Kiểm tra đơn vị tiêu cực
Sử dụng Trình quản lý riêng tư của người quản lý Tôi muốn đổi tên thành "Kiểm tra" để mgr phải rỗng. Và sau đó sẽ xác minh giá trị mgr. Để đạt được điều này, tôi muốn gọi một cách rõ ràng các nhà xây dựng tĩnh nhưng khi tôi gọi constructor tĩnh nhờ sủ dụngGọi hàm lập phương tĩnh một cách rõ ràng
Manager_Accessor.name = "Test"
typeof(Manager).TypeInitializer.Invoke(null, null);
tên luôn được thiết lập để "MyEntity" làm thế nào để đặt tên cho "Test" và gọi các constructor tĩnh .
public class Manager
{
private static string name= "MyEntity";
private static object mgr;
static Manager()
{
try
{
mgr = CreateMgr(name);
}
catch (Exception ex)
{
mgr=null;
}
}
}
Đặt 'mgr' static có nghĩa là * tất cả * phiên bản 'Manager' chia sẻ * cùng * ' mgr 'giá trị, mà cũng có thể không bao giờ được thay đổi (vì nó chỉ đọc). Đó có thực sự là điều bạn muốn không? –
Vì vậy, bạn cần phải thay đổi một giá trị tĩnh mã hóa riêng tư chịu trách nhiệm thiết lập một giá trị đọc riêng tư tĩnh cho mục đích thử nghiệm? Đây là lý do tại sao hầu hết các lựa chọn thiết kế cho thử nghiệm không thích statics. –