unity多文件单元测试的编写思考,可能无法做大打印的信息直接定位到特定文件。只显示BEGIN的文件。

This commit is contained in:
建峰 2024-08-28 00:15:21 +08:00
parent c6ec1b1574
commit 81c7854033
7 changed files with 34 additions and 24 deletions

View File

@ -205,7 +205,7 @@ static void demo_stack_struct(void)
}
stack->destory(stack);
stack_free(stack);
stack_free(&stack);
}
void demo_stack(void)

View File

@ -51,6 +51,6 @@ bool stack_init(struct _stack* self, uint32_t obj_size);
bool stack_init2(struct _stack* self, uint32_t obj_size, uint32_t capacity);
stack_t stack_new(void);
void stack_free(stack_t stack);
void stack_free(stack_t* stack);
#endif // _STACK_H_

2
mk.bat
View File

@ -7,4 +7,4 @@ cmake -B build -G "MinGW Makefiles"
make -C build
make -C build install
start /b ./build/release/bin/test.exe
"./build/release/bin/test.exe"

View File

@ -327,11 +327,12 @@ stack_t stack_new(void)
return (struct _stack*)malloc(sizeof(struct _stack));
}
void stack_free(stack_t stack)
void stack_free(stack_t *stack)
{
if(stack)
if(*stack)
{
stack->destory(stack);
free(stack);
(*stack)->destory(*stack);
free(*stack);
}
*stack = NULL;
}

View File

@ -699,7 +699,7 @@ void tree_preorder(struct _tree* self, struct _tree_node* root)
}
}
}
stack_free(stack);
stack_free(&stack);
#endif
}
@ -784,7 +784,7 @@ void tree_inorder(struct _tree* self, struct _tree_node* root)
}
}
}
stack_free(stack);
stack_free(&stack);
#endif
}
@ -879,8 +879,8 @@ void tree_postorder(struct _tree* self, struct _tree_node* root)
self->print_obj(node->obj);
}
stack_free(stack);
stack_free(stack2);
stack_free(&stack);
stack_free(&stack2);
#endif
}

View File

@ -70,8 +70,11 @@ void tearDown(void)
int main(int argc, char const *argv[])
{
printf("\n---------- 데禱꿎桿 ----------\n");
printf("----- 데禱꿎桿 -----\n");
UNITY_BEGIN();
RUN_TEST(test_stack);
return UNITY_END();
test_stack();
UNITY_END();
return 0;
}

View File

@ -17,34 +17,40 @@ static void test_stack_num(void)
int temp = 0;
uint32_t len = sizeof(data) / sizeof(data[0]);
struct _stack s;
TEST_ASSERT_TRUE(stack_init(&s, sizeof(int)));
s.print_obj = print_num;
stack_t stack = NULL;
stack = stack_new();
TEST_ASSERT_TRUE(stack_init(stack, sizeof(int)));
stack->print_obj = print_num;
TEST_ASSERT_FALSE(s.peek(&s, &temp));
TEST_ASSERT_FALSE(stack->peek(stack, &temp));
for (i = 0; i < len; i++)
{
s.push(&s, &data[i]);
s.peek(&s, &temp);
stack->push(stack, &data[i]);
stack->peek(stack, &temp);
}
for (i = 0; i < len + 1; i++)
{
if (true == s.pop(&s, &temp))
if (true == stack->pop(stack, &temp))
{
if(false != s.peek(&s, &temp))
if(false != stack->peek(stack, &temp))
{
TEST_ASSERT_EQUAL(data[len - 2 - i], temp);
}
}
}
TEST_ASSERT_TRUE(s.empty(&s));
TEST_ASSERT_TRUE(stack->empty(stack));
s.destory(&s);
stack_free(&stack);
TEST_ASSERT_NULL(stack);
}
void test_stack(void)
{
// UNITY_BEGIN();
RUN_TEST(test_stack_num);
// UNITY_END();
}