为什么在项目中我应该包含一些*.lib,.h或其他一些文件?这些东西用于什么?
我选择的数据库是MongoDB.我正在编写一个数据层API来从客户端应用程序中抽象实现细节 - 也就是说,我实际上提供了一个单独的公共接口(一个充当IDL的对象).
我正在以TDD的方式测试我的逻辑.在每个单元测试之前,@Before调用一个方法来创建数据库单例,之后,当测试完成时,@After调用一个方法来删除数据库.这有助于提高单元测试之间的独立性.
几乎所有的单元测试,即执行上下文查询,都需要事先发生某种插入逻辑.我的公共接口提供了一个插入方法 - 然而,使用此方法作为每个单元测试的前驱逻辑似乎是不正确的.
我真的需要某种模拟机制,但是,我对模拟框架没有多少经验,而且Google似乎没有返回任何可能与MongoDB一起使用的模拟框架.
其他人在这些情况下做了什么?也就是说,人们如何单元测试与数据库交互的代码?
此外,我的公共接口连接到外部配置文件中定义的数据库 - 使用此连接进行单元测试似乎不正确 - 再次,这种情况会受益于某种类型的模拟?
此链接指出以下内容:
具有实际类型参数的泛型类型的实例化称为参数化类型.示例(参数化类型):
Collection<String> coll = new LinkedList<String>();
那么什么是参数化类型?
Collection<String> 要么LinkedList<String>有什么区别:
http.Server(function(req,res){});
和
http.createServer(function(req,res){});
杰克逊的 ObjectMapper#readValue成员抛出三个例外:
Run Code Online (Sandbox Code Playgroud)IOException JsonParseException JsonMappingException
JsonParseException并JsonMappingException扩展IOException.我想包装前面提到的两个子类并抛出我自己的自定义异常,然而IOException,被检查的基类要求我捕获或抛出它.
我把它扔到IOException调用层是没有意义的,但是,如果我把它隐藏起来,那就是一种气味.我最初的想法是不抓住它并将其留给调用者/运行时异常机制来处理它......但是,我不想强迫调用者捕获或指定.
在这种情况下,人们会怎么做?
我有两个Form班,其中一个有ListBox.我需要一个setter SelectedIndex属性ListBox,我想从第二个调用Form.
目前我正在做以下事情:
表格1
public int MyListBoxSelectedIndex
{
set { lsbMyList.SelectedIndex = value; }
}
Run Code Online (Sandbox Code Playgroud)
表格2
private ControlForm mainForm; // form 1
public AddNewObjForm()
{
InitializeComponent();
mainForm = new ControlForm();
}
public void SomeMethod()
{
mainForm.MyListBoxSelectedIndex = -1;
}
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?
这通常更适用于HTTP,但我使用Node.js作为我的平台.
处理我的HTTP服务器的非接受HTTP方法时,最好的方法是什么?目前,我支持PUT和GET,但不支持POST.如果发出POST请求,我应该返回403还是405?
我的原型代码在我能够测试的每个Windows操作系统上运行良好,除了Windows XP.
当我在Windows XP上以管理员身份运行时,我在调用OpenProcessToken时被拒绝访问(5).
我不知道有什么不同吗?
#include "stdafx.h"
#include <Windows.h>
#include <userenv.h>
#pragma comment(lib, "userenv")
void DisplayError(LPWSTR pszAPI)
{
LPVOID lpvMessageBuffer;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPWSTR)&lpvMessageBuffer, 0, NULL);
wprintf(L"ERROR: API = %s.\n", pszAPI);
wprintf(L" error code = %d.\n", GetLastError());
wprintf(L" message = %s.\n", (LPWSTR)lpvMessageBuffer);
LocalFree(lpvMessageBuffer);
ExitProcess(GetLastError());
}
void SetDebugPrivileges()
{
void* tokenHandle;
TOKEN_PRIVILEGES privilegeToken;
LookupPrivilegeValue(0, SE_DEBUG_NAME, &privilegeToken.Privileges[0].Luid);
privilegeToken.PrivilegeCount = 1;
privilegeToken.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &tokenHandle);
AdjustTokenPrivileges(tokenHandle, 0, &privilegeToken, sizeof(TOKEN_PRIVILEGES), 0, 0);
CloseHandle(tokenHandle);
} …Run Code Online (Sandbox Code Playgroud) java ×4
generics ×2
javascript ×2
node.js ×2
windows ×2
c# ×1
c++ ×1
controls ×1
convention ×1
dll ×1
exception ×1
header-files ×1
http ×1
httprequest ×1
jackson ×1
jetty ×1
json ×1
junit ×1
legacy ×1
mongodb ×1
morphia ×1
netbeans ×1
unit-testing ×1
winapi ×1
winforms ×1