我一直在读,使用TDD时往往会避免使用静态方法,因为它们往往难以模拟.我发现,单元测试最简单的方法是一个具有简单功能的静态方法.不必实例化任何类,鼓励简单,做一件事,"独立"等方法.
有人可以解释TDD最佳实践和务实轻松之间的差异吗?
谢谢
我试图以编程方式(C++但VBA解释没问题)以像素为单位获取excel单元格的大小.excel应用程序gui将单元格的大小显示为:
宽度:8.28(160像素)高度:24.6(41像素),字体是Arial 20磅.
使用excel范围我可以得到:
ColumnWidth:8.3,RowHeight:24.6
范围宽度:96,范围高度24.6
我尝试使用PointsToScreenPixelsX和PointsToScreenPixelsY来表示所有上述值,但它们返回的值与excel gui所说的不匹配(行/单元格高度为396,列宽为136,列宽为224).
有任何想法吗?
我正在编写一个需要启动其他应用程序的Windows QT应用程序.如果我使用以下Windows调用一切正常:
QString qsExePath = "C:\\Program Files (x86)\\Some Company\\SomeApp.exe";
QString qsCommandLine = "";
DWORD dwLastError = 0;
STARTUPINFO startupInfo;
ZeroMemory(&startupInfo, sizeof(startupInfo));
startupInfo.cb = sizeof(startupInfo);
startupInfo.dwFlags = STARTF_USESHOWWINDOW;
startupInfo.wShowWindow = (WORD)1;
PROCESS_INFORMATION processInfo;
ZeroMemory(&processInfo, sizeof(processInfo));
if (CreateProcess((TCHAR*)(qsExePath.utf16()), (TCHAR*)(qsCommandLine.utf16()),
NULL, NULL, FALSE, 0, NULL, NULL,
&startupInfo, &processInfo))
{
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
else
{
dwLastError = GetLastError();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用以下QT调用它不起作用并且因QProcess :: Unknown Error而失败.
QProcess process;
bool bStarted = process.startDetached(qsExePath);
qDebug() << process.error();
Run Code Online (Sandbox Code Playgroud)
如果将SomeApp.exe复制到我的%TMP%目录并相应地更改qsExePath,我可以使QProcess工作,因此显然是某种权限错误.我不明白为什么虽然......如果真的是权限,我的CreateProcess windows调用不应该失败吗?