gpt4 book ai didi

c - 单元测试中的段错误

转载 作者:行者123 更新时间:2023-11-30 18:41:23 25 4
gpt4 key购买 nike

我使用 unity 函数测试了我的 C 代码以进行单元测试。它显示错误和段错误?单元测试失败后通常会出现段错误吗?或者我的代码有问题?因为,当我纠正错误时,它运行成功

time.c

//gets start time and duration in 24 hour format and returns the total of the two in 24 hour clock


int add_time(int starttime, int duration)
{
int startHour = starttime / 100;
int startMinute = starttime % 100;
int durationHour = duration / 100;
int durationMinute = duration % 100;

int finishHour = startHour + durationHour;
int finishMinute = startMinute + durationMinute;

if(finishMinute > 59)
{
finishMinute %= 60;
finishHour++;
}

finishHour %= 24;

return (finishHour * 100 + finishMinute);
}

//given end and start time, calculates the duration in 24 hour clock (duration is always less than one day)
int duration(int endtime, int starttime)
{
if(endtime < starttime)
endtime += 2400;

int endHour = endtime / 100;
int endMinute = endtime % 100;
int startHour = starttime / 100;
int startMinute = starttime % 100;

int durationMinute = endMinute - startMinute;
int durationHour = endHour - startHour;

if(durationMinute < 0)
{
durationMinute += 60;
durationHour--;
}

return (durationHour * 100 + durationMinute);

}

测试时间.c

#include "unity.h"
#include "time.c"
setUp()
{
}
tearDown()
{
}
void firstTest()
{
TEST_ASSERT_EQUAL_INT(1, add_time(2359, 2));
TEST_ASSERT_EQUAL_INT(1530, add_time(1215, 315));
TEST_ASSERT_EQUAL_INT(2215, add_time(2345, 2230));
}

int main()
{
firstTest();
return 0;
}

最佳答案

单元测试失败后通常会出现段错误的说法是不正确的。然而,当您的代码错误时,通常会出现段错误和其他错误。

您无法真正概括与特定框架或技术(在本例中为单元测试)相关的段错误。在调查错误原因之前,您所知道的只是错误发生了。

尝试在调试器中运行不正确的代码并找出段错误发生的确切位置?是在你的代码中,还是在单元测试框架中?

关于c - 单元测试中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com