Đầu tiên, xin lỗi cho tiêu đề, tôi không thể nghĩ ra cách dễ nhất để giải thích nó!
Tôi có một phương pháp mà tôi muốn viết bài kiểm tra đơn vị cho. Tôi sẽ giữ nó khá chung chung vì tôi không muốn thảo luận về việc thực hiện phương pháp, chỉ là thử nghiệm phương pháp này. Phương pháp là:
public void HandleItem(item a)
{
CreateNewItem();
UpdateStatusOnPreviousItem();
SetNextRunDate();
}
Vì vậy, lớp này có một phương thức công khai sau đó gọi một số phương thức riêng để thực hiện logic.
Vì vậy, khi viết bài kiểm tra đơn vị tôi muốn kiểm tra cả ba điều đã được thực hiện. Vì tất cả chúng đều được gọi trong cùng một lần chạy, tôi nghĩ rằng tôi có thể làm điều đó như một bài kiểm tra:
public void GivenItem_WhenRun_Thenxxxxx
{
HandleItem(item);
// Assert item has been created
// Assert status has been set on the previous item
// Assert run date has been set
}
Nhưng tôi nghĩ tôi cũng có thể viết nó thành ba bài kiểm tra riêng biệt:
public void GivenItem_WhenRun_ThenItemIsCreated()
{
HandleItem(item);
}
public void GivenItem_WhenRun_ThenStatusIsUpdatedOnPreviousItem()
{
HandleItem(item);
}
public void GivenItem_WhenRun_ThenRunDateIsSet()
{
HandleItem(item);
}
Vì vậy, với tôi điều này có vẻ đẹp hơn vì về cơ bản nó là các yêu cầu liệt kê, nhưng sau đó cả ba đều có liên quan và yêu cầu chính xác cùng một công việc được thực hiện trên phương thức được thử nghiệm, vì vậy tôi đang chạy cùng một mã 3 lần.
Có một cách tiếp cận được đề nghị để thực hiện với điều này?
Cảm ơn