我正在对其进行单元测试的代码是这样的:
if(((State !=TCPIP_IPADDR_STATE_ASSIGNED)&& (State !=TCPIP_IPADDR_STATE_ONHOLD) && (State !=TCPIP_IPADDR_STATE_UNASSIGNED)) ||(SoConId==DOIP_INVALID_16))
{
}
我的单元测试用例包括以下内容:
`DoIP_LocalIpAddrAssignmentChg(12,0xFF);`
其中 DoIP_LocalIpAddrAssignmentChg 是 if 所在的函数名称,0xFF 表示无效状态,显然不等于所有 3:TCPIP_IPADDR_STATE_ASSIGNED,TCPIP_IPADDR_STATE_ONHOLD,TCPIP_IPADDR_STATE_UNASSIGNED。SoConId的值为12。DOIP_INVALID_16 = 0xFF的值。
所以当我检查我的单元测试报告时,它给出了这个结果: 我的问题是为什么它没有覆盖TCPIP_IPADDR_STATE_UNASSIGNED 的条件,因为我传递的状态值是0xFF,这是无效值。