结伴同学:黄泽宇
地址:http://www.cnblogs.com/ddzchild/p/7635240.html
以下是我俩做的单元测试:
要求1 对每个功能,先给出测试用例,然后再编码功能。请注意把测试用例视为功能需求完成的检验指标。
要求2 在博客报告测试用例全部fail 到 全部pass 的过程,报告事实 (fail到修改代码或者测试用例,到pass) 以及收获。 除了最初的框架,测试用例中存在一次性pass没有经过fail的,也报告一次性通过,给出如此优秀地实现了这部分功能的代码。初识单元测试,因
用visual studio 来进行单元测试,因为刚刚接触单元测试再加上自己的基本不够硬,所以虽然代码的功能实现了,但导致部分功能无法顺利进行单元测试。
功能1. 四则运算支持出题4个数的四则运算题目。
测试用例如下图:
单元测试:
实现功能1的主要代码:
// 运算符优先级表
// '+' '-' '*' '/' '(' ')' '#'
unsigned char Prior[7][7] =
{
/*'+'*/'>', '>', '<', '<', '<', '>', '>',
/*'-'*/'>', '>', '<', '<', '<', '>', '>',
/*'*'*/'>', '>', '>', '>', '<', '>', '>',
/*'/'*/'>', '>', '>', '>', '<', '>', '>',
/*'('*/'<', '<', '<', '<', '<', '=', ' ',
/*')'*/'>', '>', '>', '>', ' ', '>', '>',
/*'#'*/'<', '<', '<', '<', '<', ' ', '=',
};
typedef struct StackChar
{
char c;
struct StackChar *next;
}SC; //StackChar类型的结点SC
typedef struct StackFloat
{
float f;
struct StackFloat *next;
}SF; //StackFloat类型的结点SF
SC *Push(SC *s, char c) //SC类型的指针Push,返回p
{
SC *p = (SC*)malloc(sizeof(SC));
p->c = c;
p->next = s;
return p;
}
SF *Push(SF *s, float f) //SF类型的指针Push,返回p
{
SF *p = (SF*)malloc(sizeof(SF));
p->f = f;
p->next = s;
return p;
}
SC *Pop(SC *s) //SC类型的指针Pop
{
SC *q = s;
s = s->next;
free(q);
return s;
}
SF *Pop(SF *s) //SF类型的指针Pop
{
SF *q = s;
s = s->next;
free(q);
return s;
}
float Operate(float a, unsigned char theta, float b) //计算函数Operate