我有一个名为TestMakeAValidCall()
的单元测试。它测试我的手机应用程序进行有效的通话。单元测试 - 是否有单元测试调用其他单元测试的不良形式
我即将编写另一个测试,名为TestShowCallMessage()
,需要有一个有效的测试呼叫。在该测试中打电话给TestMakeAValidCall()
是不是很糟糕?
供参考这是我的TestMakeAValidCall()
测试。
[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);
}
感谢所有的好的答案。我将重复代码重构为单独的调用。我以最多的选票选出答案。 – Vaccano 2009-09-02 17:17:19