我正在测试MongoDB C#驱动程序的包装器.我有这行代码:
Collection.Find(predicate).ToListAsync();
Run Code Online (Sandbox Code Playgroud)
where Collection类型IMongoCollection<T>并Find(predicate)返回实现的实例IFindFluent<T, T>.ToListAsync()我假设是将结果转换为列表的扩展名.
我正在尝试编写单元测试,我很难处理这个问题.我不能创建一个包装类,因为这就是我正在做的事情.我宁愿让它成功,所以ToListAsync()返回一个创建的列表或模拟Find()返回可以作为列表的东西.
警告:请像我这样的菜鸟一样对待我.这是我的第一个"真正的"C程序.所以,如果我不理解某些事情,那就是原因.
我正在尝试按照Beej的网络编程指南中的示例制作聊天服务器.它被推荐,所以你去.
我想让一个函数接受一个指向结构的指针,修改该指针中的属性,并在传递的端口上设置一个监听器.在下面的代码中,我收到了分段错误,老实说,我无法弄清楚原因.怪我是绿色的.(如果需要,在Ubuntu上使用Netbeans 6.8开发):
#define PORT "4400"
typedef struct {
int port;
fd_set *connections;
int connections_count;
int listener;
struct addrinfo address;
struct addrinfo socket_hints;
} Server;
typedef struct {
struct sockaddr_storage address; // User's address
int fs_id; // ID to the socket they belong to
char *name; // Pointer to the user's name
struct User *nextUser; // Next user in the list
} User;
void initialize_server(Server *passed_server, char *port) {
struct addrinfo *temp;
int result;
// Set up the server …Run Code Online (Sandbox Code Playgroud) 我试图在一个MVC项目的解决方案中推广一些测试代码.因为我们正在为每个控制器编写相同的测试,我的想法是我可以使用泛型来制作它,因此只需要进行一次测试.
不幸的是,我目前收到错误: Error 1 The type 'TRepo' must be a reference type in order to use it as parameter 'T' in the generic type or method 'Moq.Mock<T>'
这是相关的代码.如果需要,我可以提供更多.
TestBase.cs
public class TestBase<TController, TObject, TRepo>
where TController : IRMCController<TObject>
where TRepo : IRMCRepository
{
public Mock<TRepo> Repo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
CompaniesTest.cs
public class CompaniesTest : TestBase<CompaniesController, Company, ICompanyRepository>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
很可能是一个菜鸟问题,但我正在寻找一个printf用于sendTCP套接字的-esque函数.这是一个简单的聊天服务器,特别是Beej的套接字指南中的一个修改版本.我准备写自己的,但在此之前,我想确保我不重新发明轮子.
我正在寻找原生于C的东西,而不是图书馆或其他东西.我这样做是一种智力上的追求,使用现成的图书馆并不会教会我,也不会搞砸,直到我弄清楚并理解为什么.
对任何回答的人提前感谢!
编辑:我目前正在使用:
if(current_user->fs_id == sending_user->fs_id) {
snprintf(server->current_buffer, buffer_size, "You said: %s", message);
} else {
snprintf(server->current_buffer, buffer_size, "%s said: %s", sending_user->name, message);
}
if(send(current_user->fs_id, server->current_buffer, buffer_size, 0) == -1) {
perror("Sending data");
}
Run Code Online (Sandbox Code Playgroud)
我知道这不是最好的方法,这是我现在正在修理的部分.