草庐IT

mock-maker-inline

全部标签

c++ - 如何测试使用我可以使用的 MPI 调用 : is there any set of mock functions, 的 C\C++ 代码?

#includedoublef(){doubletimer=MPI_Wtime();returntimer;}我要搜索的是一组模拟MPI函数,所以我可以#include而不是mpi.h并在不链接到MPI库的情况下编译它。它也可能类似于#defineMOCK这将在mpi.h中触发此行为。 最佳答案 据我所知,没有任何模拟可以让您直接#include并完成。但是,无论您选择使用哪种模拟框架,您自己编写所需的函数应该没什么大不了的。只需从一个空header开始,看看您的编译器提示了哪些函数。

c++ - 如何使用 google mock 在 C++ 中模拟继承链

我正在使用googlemock,并想像这样模拟一个继承链:classA{//virtualmethodA1();}classB:publicA{//virtualmethodB1();}classC:publicB{//virtualmethodC1();}mockA时,需要mockA1();当模拟B时,我必须同时模拟A1()和B1();模拟C时,我必须模拟C1()、B1()和A1()。//MockDefinitionclassMockA:publicA{//mockA1()}classMockB:publicB{//mockA1()//mockB1()}classMockC:publ

c++ - 如何将 Given/When/Then 模式与模拟(Google Mock)一起使用?

我正在使用Given/When/Then模式来使测试代码更加清晰。由于我是用C++编写这些测试,所以我选择使用GoogleTest。通过测试,模式很清楚,因为我是这样做的:TEST(TestFixture,TestName){//Giveninta=5;intb=6;intexpectedResult=30;//Whenintresult=Multiply(a,b);//ThenEXPECT_EQ(expectedResult,result);}但是对于mocks它不再清晰,因为在Given部分出现了一些EXPECT。给定部分假设是一个设置步骤。请看一个例​​子:TEST(TestFi

c++ - inline static auto 的 Initializer "sizeof(T)"...是否需要实例化?

如果表达式的类型不相关,但我们用它来初始化静态自动变量,会发生什么?GCC和Clang的行为不同templatestructA{staticinlineautox=sizeof(T{}.f);};Aa;GCC不会引发错误。但是Clang认为这是无效的,因为它实例化了“sizeof”的操作数。GCC似乎跳过了该步骤,因为sizeof(T{}.f)始终具有类型size_t(不依赖于类型),因此它已经知道x没有实例化。如果我们引用x,例如(void)a.x;,两个编译器都会拒绝该程序。它甚至必须解析x的类型吗?如果我没记错的话,C++14以上的语言允许使用“占位符类型”保留事物(如函数)并进

c++ - inline 是否确定内部链接?

我正在尝试extern一个内联函数。我认为它应该如何工作://a.cppinlinevoidf(int){}//b.cppexternvoidf(int);intmain(){f(4);}但是出现链接错误。然后通过阅读this("1)它必须在每个翻译单元中声明为内联。")。我试过的://a.cppinlinevoidf(int){}//b.cppexterninlinevoidf(int);intmain(){f(4);}仍然收到链接错误。但是现在,尝试一些我不知道自己在做什么的事情://a.cppexterninlinevoidf(int){}//b.cppexterninlinev

使用Google Mock进行C++高性能单元测试?

我正在使用GoogleMock,并且正在努力模拟C++系统调用(特别是C++11计时函数)。我知道我应该创建一个接口(interface),创建一个类以为我的实际实现实现该接口(interface),然后在测试中模拟出该接口(interface)。我正在尝试编写一个嵌入式应用程序,因此这种级别的间接听起来对我来说太昂贵了。将系统调用纳入GoogleMock的最有效/最有效的方法是什么? 最佳答案 不,您不必求助于模拟静态类-这是许多选择之一。如果您处于虚拟分配过多的嵌入式环境中,或者该体系结构的编译器/链接器优化器做得很糟糕,那么您

c++ - 有没有办法把 "inline"关键字的两种含义分开(ODR relaxation vs. function code inlining)

我想我完全理解C++中inline关键字的含义。具体来说,它意味着两个半相关的事情:对于声明为inline的函数放宽了ODR规则。因此,您可以在多个TU中定义相同的功能符号,而不会在链接它们时出现错误。这允许在header中定义函数。这是对编译器的一个建议,它应该用函数编译代码的拷贝替换函数的调用,而不是对地址的调用指令函数符号。我可以理解这两个含义在一个方向上必然相关:2必须暗示1。#2要求函数定义对所有调用该函数的TU可用。因此函数定义必须存在于多个TU中。因此需要放宽ODR以避免链接器错误。但我的问题是关于另一个方向-为什么语言设计为1必须暗示2?在某些情况下和对于某些设计决策,

c++ - 如何声明和实现一个 const 和 inline 成员函数?

代码:点3f.hClassPoint3f{...inlinevoidproject2D(ProjTypep,constPoint2i&view)const;};点3f.cppinlinevoidPoint3f::project2D(ProjTypep,constPoint2i&view)const{switch(p){casePROJ_XY:glVertex2f(x*view.x,y*view.y);break;casePROJ_YZ:glVertex2f(y*view.x,z*view.y);break;casePROJ_XZ:glVertex2f(x*view.x,z*view.y

c++ - MockPP 和 Google Mock 的优缺点

以下模拟框架如何相互比较?与Java同类产品相比,它们的主要局限性是什么?MockPPGoogleMock 最佳答案 我刚刚使用了googlemock,效果很好。框架工作有很多功能(伙计们真的想到了一切)。唯一的坏处是,有时无法判断调用失败的位置,因为它只是打印一个不感兴趣的调用,而不是真正发生的行和文件。比如这个:GMOCKWARNING:Uninterestingmockfunctioncall-returningdirectly.Functioncall:UpdateReferences()我不能告诉你任何关于MockPP和j

ios - 如何在 iOS 测试中实际使用 Stub 或 Mocking 对象?

我的问题分为两部分。首先,我对iOS中的测试有非常基本的了解,我正在尝试学习使用模拟。据我所知,当难以访问该对象(例如查询数据库或不可预测的情况)时,模拟对象是对假对象的模拟。你能解释一个简单的例子如何模拟数据库的行为吗?在我的情况下,我想测试从FacebookAPI的API调用接收到的JSON数据包。我想确保这些数据包不为空并且存在特定节点。对此进行测试的最佳方法是什么? 最佳答案 stub是一种伪造物,在调用时提供固定响应。模拟是一种记录其调用方式的伪造品。这就是为什么模拟对象框架(例如OCMock或OCMockito)基本上可