我正在编写一些单元测试.特别是我想测试一些私有方法.
到目前为止,我已经提出了使用.
#define private public
Run Code Online (Sandbox Code Playgroud)
但我对此并不满意,因为它会从单元测试的角度破坏所有封装.
您使用什么方法对私有方法进行单元测试.
我将应用程序移植到C中的ARM平台,该应用程序也在x86处理器上运行,并且必须向后兼容.
我现在有一些变量对齐的问题.我已经阅读了gcc手册,因为
__attribute__((aligned(4),packed))
我解释了所说的内容,因为struct的开头与4字节边界对齐,并且由于packed语句,内部保持不变.
最初我有这个,但偶尔它与4字节边界不对齐.
typedef struct
{
unsigned int code;
unsigned int length;
unsigned int seq;
unsigned int request;
unsigned char nonce[16];
unsigned short crc;
} __attribute__((packed)) CHALLENGE;
Run Code Online (Sandbox Code Playgroud)
所以我把它改成了这个.
typedef struct
{
unsigned int code;
unsigned int length;
unsigned int seq;
unsigned int request;
unsigned char nonce[16];
unsigned short crc;
} __attribute__((aligned(4),packed)) CHALLENGE;
Run Code Online (Sandbox Code Playgroud)
该明白我前面所说似乎是不正确的,这两个结构是现在对齐到4字节边界,和现在的内部数据对齐到四个字节边界,但因为尾结构,该结构的大小已增加大小从42到44个字节.这个大小是至关重要的,因为我们有其他依赖于结构为42字节的应用程序.
有些人可以向我描述如何执行我需要的操作.任何帮助深表感谢.