我正在尝试使用Google Test来测试一些C代码,但我正在苦苦挣扎。我真的不知道如何测试代码。我试过一些东西,但我不知道它是不是可以。有没有人能给我解释一下我做了什么以及如何测试开关部分?
这是我写的测试:
TEST_F(MPS_Tests, Wai_for_discharging_of_several_rails) {
MPS__tenPowerUpTrigger enTrigger = MPS__enGetPowerUpTrigger();
EXPECT_EQ(enPowerUpTriggerFstp, enTrigger);
MPS__vOnEnterStateAcPu1();
EXPECT_EQ(MPS__enGetInternalState(enAC), enStateAcPu1);
EXPECT_EQ(MPS__u16GetSmEvent(enAC), enStateAcPu1);下面是经过测试的代码:
MPS__tenPowerUpTrigger MPS__enGetPowerUpTrigger(void)
{
/* TODO: rework after startup trigger is considerd by design */
return enPowerUpTriggerFstp;
}
/* Wait for discharging of several rails */
void MPS__vOnEnterStateAcPu1(void)
{
MPS__tenPowerUpTrigger enTrigger = MPS__enGetPowerUpTrigger();
MPS__vSetInternalState(enAC, enStateAcPu1);
switch (enTrigger)
{
case enPowerUpTriggerFstp:
MPS__vSetWait(enAC, u16Time_AC1ASU_t4);
break;
case enPowerUpTriggerWakeUp:
MPS__vSetWait(enAC, MPS_TIMER_NOWAIT);
break;
case enPowerUpTriggerReset:
MPS__vSetWait(enAC, u16Time_AC1CSU_t2);
break;
default:
/* error handling */
break;
}
}谢谢!
发布于 2019-07-10 18:21:00
要涵盖switch中的所有选项,最简单的方法是将MPS__enGetPowerUpTrigger更改为以下内容:
MPS__tenPowerUpTrigger MPS__enGetPowerUpTrigger(void)
{
const MPS__tenPowerUpTrigger return_values[3] = {
enPowerUpTriggerFstp,
enPowerUpTriggerWakeUp,
enPowerUpTriggerReset
};
static int idx = 0;
MPS__tenPowerUpTrigger return_value = return_values[idx];
idx += 1;
if (idx >= 3) idx = 0;
return return_value;
}..。然后调用MPS__vOnEnterStateAcPu1 3次?
https://stackoverflow.com/questions/56965708
复制相似问题