c语言-手写断言工具


#ifndef STUDY_ASSERTMY_H
#define STUDY_ASSERTMY_H
#include <stdio.h>
#include <windows.h>



//设置字体颜色 (只是在windward下有效)
#define  color(x)  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x)

#define assertErrorMessageTest(_Expression,errorMessage) \
    do \
    {
      
                                        \
     if((_Expression)){
      
                      \
       color(2) ;\
      printf("==============================: method:%s --->  (%s)Assertion success\n ",__func__,#_Expression);     \
      } ;                              \
      color(7);\
     if(!(_Expression)){
      
                     \
     color(4) ;\
      printf("==============================: (%s)\n Assertion failed: (%s), file:%s \nmethod:%s , line %d \n", errorMessage, #_Expression, __FILE__,__func__ , __LINE__) ;                                                                                  \
     exit(0);                   \
     color(7);                         \
     } ;                              \
} while(0)



#define assertMessageMoreTest(_Expression,correctMessage, errorMessage) \
    do \
    {
      
                                        \
     if((_Expression)){
      
                      \
       color(2) ;\
      printf("==============================: (%s)\n Assertion success: (%s) , method:%s \n   ",correctMessage,__func__,#_Expression);     \
      } ;                              \
      color(7);\
     if(!(_Expression)){
      
                     \
     color(4) ;\
      printf("==============================: (%s)\n Assertion failed: (%s), file:%s \nmethod:%s , line %d \n", errorMessage, #_Expression, __FILE__,__func__ , __LINE__) ;                                                                                  \
     exit(0);                   \
     color(7);                         \
     } ;                              \
} while(0)


#define assertTest(_Expression) \
    do \
    {
      
                                        \
     if(!(_Expression)){
      
                     \
         color(4) ;\
          printf("Assertion failed: (%s), file:%s \nmethod:%s , line %d \n", #_Expression, __FILE__,__func__ , __LINE__) ;                                                                                  \
         exit(0);                   \
         color(7);                         \
     } ;                              \
} while(0)

#define assertError(errorMessage) \
do \
{
      
                                        \
         color(4) ;\
         printf("Assertion failed: (%s), file:%s \nmethod:%s , line %d \n", errorMessage, __FILE__,__func__ , __LINE__) ;                                                                                  \
         exit(0);                   \
         color(7);                         \
} while(0)



#endif //STUDY_ASSERTMY_H

在这里插入图片描述

点赞 -收藏-关注-便于以后复习和收到最新内容
有其他问题在评论区讨论-或者私信我-收到会在第一时间回复
在本博客学习的技术不得以任何方式直接或者间接的从事违反中华人民共和国法律,内容仅供学习、交流与参考
免责声明:本文部分素材来源于网络,版权归原创者所有,如存在文章/图片/音视频等使用不当的情况,请随时私信联系我、以迅速采取适当措施,避免给双方造成不必要的经济损失。
感谢,配合,希望我的努力对你有帮助^_^

猜你喜欢

转载自blog.csdn.net/weixin_45203607/article/details/126888523