Giả sử rằng lớp Foo
của tôi có như sau:Đơn vị kiểm tra constructor tiêm
readonly IService service;
public Foo(IService service)
{
if (service == null)
throw new ArgumentNullException("service");
this.service = service;
}
public void Start()
{
service.DoStuff();
}
Cho đến nay, tôi có một bài kiểm tra đơn vị cho các nhà xây dựng nơi tôi vượt qua trong null để xác minh rằng một ArgumentNullException
bị ném. Tôi có cần một thử nghiệm đơn vị thứ hai cho nhà xây dựng của tôi, nơi tôi vượt qua trong một hợp lệ IService
và xác minh rằng this.service
được thiết lập (mà sẽ yêu cầu một người truy cập công cộng)?
Hoặc tôi có nên chỉ dựa vào thử nghiệm đơn vị của mình cho phương pháp Start
để kiểm tra đường dẫn mã này không?
Một việc khác bạn có thể làm là loại bỏ hoàn toàn ctor và để cho nó được tạo ra bởi một mẫu T4, chẳng hạn như dự án này: https://t4ctorgenerator.codeplex.com/. Không cần phải kiểm tra đơn vị mã được tạo ra. – Steven