小编Cod*_*ula的帖子

我如何使用Moq IFindFluent来调用ToListAsync?

我正在测试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# unit-testing moq mongodb-.net-driver

9
推荐指数
1
解决办法
1062
查看次数

如何在getaddrinfo中处理这个指针?

警告:请像我这样的菜鸟一样对待我.这是我的第一个"真正的"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)

c sockets

8
推荐指数
1
解决办法
533
查看次数

为模拟提供通用

我试图在一个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)

谢谢你的帮助.

c# generics asp.net-mvc moq

3
推荐指数
1
解决办法
332
查看次数

是否有发送的fprintf?

很可能是一个菜鸟问题,但我正在寻找一个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)

我知道这不是最好的方法,这是我现在正在修理的部分.

c sockets

1
推荐指数
1
解决办法
243
查看次数