Skip to content

Commit 195eecc

Browse files
committed
增加更多的测试用例;更新文档
1 parent d27db51 commit 195eecc

File tree

4 files changed

+43
-9
lines changed

4 files changed

+43
-9
lines changed

README.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# rmdev_test_framework
22

3-
一个纯 C 语言,适用于单片机开发的简易测试框架。也是 [rmdev](https://github.com/CQUT-RoboMaster-ShiJi-DREAMER-ECU-Team/rmdev)
3+
一个纯 C
4+
语言,适用于单片机开发的简易测试框架。也是 [rmdev](https://github.com/CQUT-RoboMaster-ShiJi-DREAMER-ECU-Team/rmdev)
45
的一个子项目。
56

67
## 使用方法
@@ -26,8 +27,4 @@ CMake 3.5 或更高版本。
2627
### 使用步骤
2728

2829
1.`rmdev_test_framework.h` 头文件包含到主函数所在的文件中。
29-
2. 在测试代码的主函数中调用 `rmdev_test_framework_main()` 函数。
30-
3. 实现相关接口函数(在合适的位置定义函数):
31-
1. `void rmdev_test_Printf(const char* format, ...)` - 用于格式化输出测试结果。
32-
2. `void rmdev_test_Delay(const unsigned int ms)` - 用于延时。
33-
4. 定义测试项函数 `void rmdev_test_testItem(void)`,在这个函数内调用测试宏。
30+
2. 在测试代码的主函数中调用 `rmdev_test_framework_main()` 函数。相关参数可参考阅读函数的注释。

inc/rmdev_test_framework.h

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,29 @@ typedef void (*rmdev_test_testItemCallback)(void);
4040
/**
4141
* rmdev 测试框架 主函数
4242
* @attention 需要将其放在真正的 main 函数中调用
43+
* @param break_char 换行符
44+
* @param printfCallback 用于格式化输出的回调函数
45+
* @param delayCallback 用于延时的回调函数
46+
* @param testItemCallback 运行测试项的回调函数(你执行的测试在这个函数里执行)
4347
*/
4448
void rmdev_test_framework_main(const char* break_char,
4549
rmdev_test_printfCallback printfCallback,
4650
rmdev_test_delayCallback delayCallback,
4751
rmdev_test_testItemCallback testItemCallback);
4852

53+
/**
54+
* rmdev 测试框架 定义一个测试项
55+
* @attention 不建议直接调用这个函数,而是使用宏 RMDEV_TEST_ITEM,因为这个宏可以自动填写文件名与行号
56+
* @param name 测试项名称
57+
* @param file 调用函数所在的文件名
58+
* @param line 调用函数所在的行号
59+
*/
4960
void rmdev_test_item(const char* name, const char* file, int line);
5061

62+
/**
63+
* rmdev 测试框架 定义一个测试项
64+
* @param name 测试项名称
65+
*/
5166
#define RMDEV_TEST_ITEM(name) rmdev_test_item(name, __FILE__, __LINE__)
5267

5368
/**
@@ -67,7 +82,7 @@ void rmdev_test_check(const char* file, int line, rmdev_test_bool_t result);
6782

6883
/**
6984
* rmdev 测试框架 断言布尔表达式是否正确(测试失败后会停止测试)
70-
* @attention 不建议直接调用这个函数,而是使用宏 RMDEV_TEST_CHECK,因为这个宏可以自动填写文件名与行号
85+
* @attention 不建议直接调用这个函数,而是使用宏 RMDEV_TEST_ASSERT,因为这个宏可以自动填写文件名与行号
7186
* @param file 调用函数所在的文件名
7287
* @param line 调用函数所在的行号
7388
* @param result 待检查的布尔表达式

src/rmdev_test_framework.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ static void rmdev_test_item_finish(const char* name);
5151
do { \
5252
} while (RMDEV_TEST_TRUE)
5353

54+
/**
55+
* 测试项结束
56+
* @param name 结束的测试项的名称
57+
*/
5458
static void rmdev_test_item_finish(const char* name)
5559
{
5660
in_test_item = RMDEV_TEST_FALSE;

test/main.c

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
#include "test_function_impl.h"
1313

14-
void my_testItem(void)
14+
void testUsage(void)
1515
{
1616
RMDEV_TEST_ITEM("Constant Test");
1717
RMDEV_TEST_CHECK(true);
@@ -22,6 +22,23 @@ void my_testItem(void)
2222
RMDEV_TEST_CHECK((2 * 2) == 4);
2323
RMDEV_TEST_CHECK((3 - 1) == 2);
2424

25+
RMDEV_TEST_CHECK((10 / 2) == 5);
26+
RMDEV_TEST_CHECK((5 % 2) == 1);
27+
RMDEV_TEST_CHECK((7 * 3) == 21);
28+
RMDEV_TEST_CHECK((8 - 3) == 5);
29+
RMDEV_TEST_CHECK((4 + 6) == 10);
30+
31+
RMDEV_TEST_CHECK((10 / 3) == 4); // false
32+
33+
RMDEV_TEST_ASSERT((15 / 3) == 5);
34+
RMDEV_TEST_ASSERT((9 % 3) == 0);
35+
RMDEV_TEST_ASSERT((6 * 6) == 36);
36+
37+
RMDEV_TEST_CHECK((2 * 2) == 5); // false
38+
39+
RMDEV_TEST_ASSERT((20 - 10) == 10);
40+
RMDEV_TEST_ASSERT((3 + 7) == 10);
41+
2542
RMDEV_TEST_CHECK((1 + 1) == 3); // false
2643

2744
RMDEV_TEST_CHECK((114514 + 1919810) == 2034324);
@@ -36,7 +53,8 @@ void my_testItem(void)
3653

3754
int main(void)
3855
{
39-
rmdev_test_framework_main("\n", my_printf, my_delay, my_testItem);
56+
// todo 待增加其他的测试(比如传入空指针)
57+
rmdev_test_framework_main("\n", my_printf, my_delay, testUsage);
4058

4159
return 0;
4260
}

0 commit comments

Comments
 (0)