Tôi có một bài kiểm tra đơn vị được gọi là TestMakeAValidCall()
. Nó kiểm tra ứng dụng điện thoại của tôi thực hiện cuộc gọi hợp lệ.Kiểm tra đơn vị - Có phải là hình thức không tốt để thử nghiệm đơn vị gọi các bài kiểm tra đơn vị khác
Tôi sắp viết một bài kiểm tra khác gọi là TestShowCallMessage()
cần phải có cuộc gọi hợp lệ được thực hiện cho bài kiểm tra. Có phải là hình thức xấu để chỉ gọi TestMakeAValidCall()
trong thử nghiệm đó?
Để tham khảo, đây là thử nghiệm TestMakeAValidCall()
của tôi.
[TestMethod]
public void TestMakeAValidCall()
{
//Arrange
phone.InCall = false;
phone.CurrentNumber = "";
// Stub the call to the database
data.Expect(x => x.GetWhiteListData()).
Return(FillTestObjects.GetSingleEntryWhiteList());
// Get some bogus data
string phoneNumber = FillTestObjects.GetSingleEntryWhiteList().
First().PhoneNumber;
// Stub th call to MakeCall() so that it looks as if a call was made.
phone.Expect(x => x.MakeCall(phoneNumber)).
WhenCalled(invocation =>
{
phone.CurrentNumber = phoneNumber;
phone.InCall = true;
});
//Act
// Select the phone number
deviceControlForm.SelectedNumber = phoneNumber;
// Press the call button to make a call.
deviceMediator.CallButtonPressed();
//Assert
Assert.IsTrue(phone.InCall);
Assert.IsTrue(phone.CurrentNumber == phoneNumber);
}
Cảm ơn tất cả các câu trả lời tuyệt vời. Tôi đã tái cấu trúc mã trùng lặp thành một cuộc gọi riêng biệt. Tôi đã chọn câu trả lời với nhiều phiếu nhất. – Vaccano