我写这封信时,我的计算机接收/打一个电话的单元测试。
被测试的方法是处理呼入/呼出的事件。 如果来电者是不是认可主叫然后呼叫被拒绝。
该代码工作正常,但我真的不能找到任何针对测试对于我的单元测试。 问题是,实际的状态,“如果我的电脑是在通话中或不是” 不控制我的班。 只有计算机知道如果呼叫当前连接与否。
我希望有一些单元测试师的在那里不是能告诉我该怎么来测试此方案是什么。 我不想创建一个没有关系我的代码只是为了让我的单元测试循环中的虚拟变种。
为了使这个多一点具体的,这里是我的单元测试:
private DeviceMediator deviceMediator;
private IDeviceControlForm deviceControlForm;
private IDataAccess data;
private ICallMonitor callMonitor;
// Use TestInitialize to run code before running each test
[TestInitialize()]
public void MyTestInitialize()
{
deviceControlForm = MockRepository.GenerateStub<IDeviceControlForm>();
data = MockRepository.GenerateStub<IDataAccess>();
callMonitor = MockRepository.GenerateStub<ICallMonitor>();
deviceMediator = new DeviceMediator(deviceControlForm, data)
{CallMonitor = callMonitor};
}
[TestMethod]
public void TestHandleIncomingCall()
{
//Arrange
//Act
deviceMediator.OnIncomingCall(null, new CallState(),
new CallInfoState());
//Assert
// I could not find anything to feasably test on this.
Assert.IsTrue(true);
}
这里是正在调用的方法:
public void OnIncomingCall(Call call, CallState callState,
CallInfoState callInfoState)
{
// See if this call is on our list of approved callers
bool callApproved = false;
foreach (PhoneContact phoneContact in Whitelist)
{
if (phoneContact.PhoneNumber == call.CallerID)
callApproved = true;
}
// If this is not an approved call then
if (!callApproved)
CallMonitor.Hangup();
}