草庐IT

C++ 单元测试和 stub 第 3 方 C 库

我需要对我编写的一些使用第3方C库的C++对象进行单元测试。由于超出该问题范围的原因,我无法直接调用第3方C库,需要将其stub以用于测试套件。对于单元测试套件的其他部分,我们使用googlemock,但我认为它不能用于C库。我可以手动stub库,但不想这样做(部分原因是懒惰(它相当大),但主要是因为它只是一个原则问题)。所以这是我的问题:是否有一种工具可以根据C库头文件生成stub代码?一旦我有了被删除的代码,我将对其进行一些小的修改,然后我将针对它进行链接以进行单元测试。 最佳答案 stubgen可以从头文件生成stub成员,除

c++ - 如何在 C++ 中 stub /模拟非指针成员变量?

很多单元测试的网站都说要提取一个接口(interface)和接口(interface)的代码(这是有道理的),但这需要通过指针使用多态性。是否可以在没有指针的情况下完成此操作,这样我就不必修改生产代码?我宁愿不使用指针和管理内存。允许条件编译。我专门为我的stub/模拟使用gmock。我研究过的一些事情是:使用引用涉及编写特殊的复制构造函数或使其不可复制仍然需要使用new/delete来管理内存不确定这是否会导致不可预见的问题通过代码生成创建指针包装类的集合。界面保持不变,但增加了一些测试方法。看起来可以,但需要维护下面是我的意思的例子请注意gmock模拟对象不可复制,因此我不能构造函

c++ - VC++2010 自动生成方法 stub 或原型(prototype)

我是C++和VisualStudio的新手,来自Java和Eclipse;假设我为一个类编写了一个新方法。有没有捷径或一些快速的方法来自动将方法原型(prototype)添加到header中的类定义?同样,如果我在header中添加一个新的方法原型(prototype),是否有在实现中生成方法stub的快捷方式? 最佳答案 不知道VS2010有没有这个功能,之前的版本没有。但是这个问题可以通过第3方扩展来解决。VisualAssistX具有命令“创建声明”和“创建实现”。 关于c++-V

c++ - 使用 VS2010 在客户端编译 native COM 客户端 stub

我是COM编程的新手,刚开始使用VisualStudio2010创建基本的nativeCOM服务器/客户端对。客户端和服务器项目都位于同一个解决方案中。我想知道最合适的方法是将生成的客户端stub和头文件包含在客户端项目中。我在我的服务器项目中创建了MIDL,当我编译该项目时,_h.h、_i.c和_p.c文件会在我的项目源目录中生成。我是否需要编译我的客户端项目中的两个.c文件?在客户端项目中编译它们的最佳方式是将它们作为链接文件从服务器项目的源目录添加到客户端项目中吗?当我修改MIDL时,VisualStudio是否有办法知道_h.h、_i.c和_p.c文件已过时,或者我是否需要记住

ios - stub [[SomeClazz alloc] init] 不工作但接受的答案说它应该工作

我测试的功能很简单:@implementationMyHandler...-(void)processData{DataService*service=[[DataServicealloc]init];NSDictionary*data=[servicegetData];[selfhandleData:data];}@end我使用OCMock3对其进行单元测试。我需要stub[[DataServicealloc]init]以返回一个模拟实例,我尝试了answerfromthisquestion(这是一个公认的答案)stub[[SomeClazzalloc]init]://Stub'al

iphone - 为什么我的 OCMock 期望和 stub 在 iOS 5 中失败?

我有一些简单的模拟对象,其中设置了一些stub和期望。当我在iOS4.3模拟器上运行测试时,一切都通过了。当我在iOS5上运行时,出现“意外调用方法”故障。作为示例,我有一个方法-(void)foo:(NSString*)bar我为其设置了期望值然后运行。结果是unexpectedmethodinvoked:foo:@"foobar"expected:foo:@"foobar"有人知道为什么会这样,或者如何解决?测试本身非常好,并且已经在iOS4中运行了几个月。 最佳答案 抱歉现在才看到。已经修复了一段时间https://githu

ios - OCMockito 可以 stub 采用 `const void *` 参数的方法吗?

我的MessageSerializer类有一个方法,其签名如下所示:-(Message*)deserialize:(constvoid*)bufferlength:(NSUInteger)length;我可以使用OCMockito来stub吗?其中serializer是我的模拟序列化器,编译器在我的测试方法中批准了以下所有这些形式:[given([serializerdeserialize:[databytes]length:[datalength]])willReturn:message];[given([serializerdeserialize:(__bridgeconstvoi

ios - OCMockito stub 单例共享实例方法

我使用OCMock对类lvl方法进行stub,效果很好。现在我需要使用OCMockito实现相同的行为。在OCMock中我有以下内容:_mock=mockClass([MySingletonclass]);OCMStub([_mocksharedSingleton]).andReturn(_mock);在我的例子中,我必须stubsharedSingleton方法,因为它在测试期间在多个地方使用。 最佳答案 OCMock直接stub单例的能力是通过方法调配完成的。对于OCMockito,我有意避免这种方法。我建议您使用某种形式的De

ios - 使用 Alamofire 进行网络请求的单元测试 iOS 应用程序

我是iOS开发的新手,我正在构建一个使用Alamofire进行HTTP请求的应用程序。我需要为登录等一些事情编写单元测试,需要帮助。我对Stub、Mocks进行了一些研究,还阅读了一些框架,如Nocilla和OHTTPStubs,但我无法开始。我有一个登录Controller,它获取登录信息,例如-来自Storyboard的用户名、密码和登录按钮操作,我调用了一个服务器实用程序方法。我有一个服务器实用程序类,它实现了发出网络请求的方法。@IBActionfunclogIn(sender:AnyObject?){server.loginWith(username,password:pas

objective-c - 如何在 iOS 5 运行时为基于状态的测试 stub /注入(inject) View Controller ?

我正在寻找一种“最佳实践”/“低测试阻力”的方法来对我的AppDelegate基类中的ViewController进行基于状态的测试。目前,当在类的方法中发生某些事情时,下面提供了一种简单的方法来stub我自己的UIViewController(使用ocmock)。-(FirstViewController*)getFirstViewController{if(self.viewController1){returnself.viewController1;}self.viewController1=[[FirstViewControlleralloc]initWithNibName: