我有一个csv解析器模块,它解析一个非常特定类型的.csv文件并从中提取字段.现在来测试这个模块我正在编写一些单元测试.传统上,为了测试模块,我将创建一个相同格式但具有有限条目的示例csv文件,然后将此文件传递给模块并检查输出.显然这不是很好,因为它依赖于测试文件本身.
什么是正确的方法?我已经阅读过关于mock模块以及它如何模拟的东西.但我不知道如何模拟特定文件.
我看了这里给定的ctypes示例-Beginner,并使用不同的C代码执行了相同的步骤。我已经使用此处提供的C代码构建了一个.dll和.lib:http : //wolfprojects.altervista.org/articles/dll-in-c-for-python/
//test.c
__declspec(dllexport) int sum(int a, int b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
在我的wrapper.py中,我有:
import ctypes
testlib = ctypes.CDLL("C:\\Users\\xyz\\Documents\\Python\\test.dll")
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,出现以下错误:
self._handle = _dlopen(self._name,mode)
OSError:[WinError 193]%1不是有效的Win32应用程序
如果我用
testlib = ctypes.LibraryLoader("C:\\Users\\xyz\\Documents\\Python\\test.dll")
Run Code Online (Sandbox Code Playgroud)
那么我在运行脚本时没有任何错误。但是,如果我尝试这样做:
testlib.sum(3,4)
Run Code Online (Sandbox Code Playgroud)
我得到错误:
dll = self._dlltype(名称)
TypeError:“ str”对象不可调用
dll和.py位于同一文件夹中。谁能帮助我了解这里的情况。我花了数小时试图弄清楚这一点,但是碰壁了。谢谢。
使用pyautogui有没有办法获取窗口的句柄,以便我可以确保仅在该窗口上执行单击?换句话说,如果我的窗口没有对准焦点,则不会发生单击。另外,如果我的窗口没有聚焦,则将其聚焦,然后执行操作。
识别窗口的方式可以是ID,窗口标题等,类似于此https://autohotkey.com/docs/commands/WinGet.htm
还有其他支持这种功能的Python模块吗?