我必须为学校项目建立一个图书馆,并以较小的用途使用该图书馆。现在,我已经制作了XPM_lib.h和XPM_lib.c文件以及我的test.c文件。但是,当我尝试编译test.c文件时,出现“对initXPM_image的未定义引用”错误。
我的文件是(XPM_lib.h):
#ifndef LIBRARYXPM_H_INCLUDED
#define LIBRARYXPM_H_INCLUDED
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define HEADER "/*XPM*/"
#define STRING_BEGIN "static char *egc[] = {\n\n /*width , height , ncolors , charsperpixel */ \n "
#define STRING_END "\n }"
#define STRING_SEPARATOR ","
#define STRING_COLORS "/* colors #RRGGBB */"
#define STRING_PIXELS "/* pixels */"
struct Color{
unsigned char r,g,b;
char *color_char;
char key[2];
};
struct XPM_image {
unsigned int width;
unsigned int height;
unsigned int no_colors; // number of colors used
unsigned char char_per_pixel; // number of …Run Code Online (Sandbox Code Playgroud) 我知道之前有人问过这个问题,但我有一个特殊的问题,这意味着我希望 mock_open 实际返回一个特定的模拟对象。
我有一个要测试的功能:
def foo(src,dest):
with contextlib.nested(
open(src,'r'),
open(dest,'w')) as (src,dest):
d = src.read(1)
....
Run Code Online (Sandbox Code Playgroud)
我的问题是,使用 mock_open(),如何让它返回特定的 src 和 dest 模拟,以便我可以对它们进行断言?即使我使用 mock_open(mock=mock_src) 它仍然没有传递我想要的对象,而是一个新的对象。