草庐IT

mocking-stubbing

全部标签

c++ - CUDA 和固定(页面锁定)内 stub 本没有页面锁定?

当我需要固定(页面锁定)内存时,我试图弄清楚CUDA(或OpenCL实现)是否说实话。我试过cudaMallocHost并查看了/proc/meminfo值Mlocked和Unevictable,都保持在0并且永远不会上升(/proc//status报告VmLck也为0)。我用了mlock页面锁定内存并且值按预期上升。因此,这种行为的两个可能原因可能是:我没有从CUDAAPI获得页面锁定内存,并且cudaSuccess是假的CUDA绕过操作系统计数器来获取页面锁定内存,因为CUDA对linux内核有一些魔力所以实际的问题是:当我使用CUDA分配页面锁定内存时,为什么我无法从操作系统获取

c++ - 如何使模拟对象在 Google Mock 中引发异常?

使用GoogleMock1.7.0,我有一个带有方法的模拟对象,我希望它被调用,在这种情况下,模拟的方法应该引发异常。ObjectMockobject_mock_;EXPECT_CALL(object_mock_,method()).Times(1).WillRepeatedly(???);是否存在引发异常的GoogleMock操作?我在文档中没有找到它,但我怀疑到目前为止没有人需要它。谢谢! 最佳答案 只需编写一个引发异常的简单操作:ACTION(MyThrowException){throwMyException();}并像使用

c++ - 纯虚方法 stub 是在什么条件下生成的?

我在很多地方(例如here)读到过关于人们在运行时遇到“纯虚方法调用”错误和程序崩溃的信息。Thisanswer这么说Mostcompilersassignsuchvtableentriestoastubwhichemitsanerrorbeforeabortingtheprogram.和thisone甚至说ItaniumABI指定了该stub是什么。问题是:我所有试图看到这种行为的尝试都被编译器(GCC6.4.1)在编译时捕获为undefinedreference。例如,当从抽象类的构造函数中调用纯虚函数时,我会收到警告从构造函数调用的纯虚拟‘virtualintX::f()’但同时

c++ - Google Mock 单元测试静态方法 c++

我刚开始进行单元测试(使用BOOST框架进行测试,但对于模拟我必须使用GoogleMock)并且我遇到了这种情况:classA{staticintMethod1(inta,intb){returna+b;}};classB{staticintMethod2(inta,intb){returnA::Method1(a,b);}};所以,我需要创建模拟类A,并让我的B类不使用A类中的真实Method1,而是使用模拟。我不知道该怎么做,也找不到类似的例子。 最佳答案 您可以将B类更改为模板:templateclassB{public:st

c++ - 如何使用 Google Mock 模拟模板化方法?

我正在尝试模拟一个模板化方法。这是包含要模拟的方法的类:classmyClass{public:virtual~myClass(){}templatevoidmyMethod(Tparam);}如何使用GoogleMock模拟方法myMethod? 最佳答案 在以前的GoogleMock版本中,您只能模拟虚函数,请参阅documentation在项目的页面中。允许模拟的最新版本non-virtualmethods,使用他们所谓的高性能依赖注入(inject)。正如用户@congusbongus在此答案下方的评论中所说:GoogleM

c++ - 如何在 C 中使用 google mock?

我正在维护一个用C编写的遗留项目,使用C++编译器运行它是不可行的。由于代码是交叉编译的,因此可以在主机环境中运行单元测试或类似的测试。因此,也可以与C++主机编译器接口(interface)并使用google-test和google-mock。google-mock的某些功能似乎很容易被用于测试,以调用真实的实现和设置调用期望。我希望能够在C代码中使用它们。我可以看到确实可以不使用vtables使用google-mock,但它需要模板。有没有办法用googlemock模拟裸C函数?编辑:我基本上不得不使用googlemock,但我认为阅读此线程的其他人都比我有更好的灵active。

javascript - ES2016 类,Sinon Stub 构造函数

我正在尝试用sinon和es2016消除一个super调用,但我运气不佳。任何想法为什么这不起作用?运行Node6.2.2,这可能是其类/构造函数实现的问题。.babelrc文件:{"presets":["es2016"],"plugins":["transform-es2015-modules-commonjs","transform-async-to-generator"]}测试:importsinonfrom'sinon';classFoo{constructor(message){console.log(message)}}classBarextendsFoo{construc

javascript - stub Date.now() 和 Math.random()

我正在使用Mocha与Sinon对我的node.js模块进行单元测试。我已经成功地模拟了其他依赖项(我编写的其他模块),但我遇到了stub非纯函数(如Math.random()和Date.now())。我尝试了以下方法(已简化,以便这个问题没有那么本地化),但由于明显的范围问题,Math.random()没有被stub。Math的实例在测试文件和mymodule.js之间是独立的。test.jsvarsinon=require('sinon'),mymodule=require('./mymodule.js'),other=require('./other.js');describe(

node.js - 如何使用 sinon stub 用 typescript 编写的类的私有(private)方法

我正在为一个公共(public)方法编写单元测试,该方法反过来调用用typescript(NodeJS)编写的类的私有(private)方法。示例代码classA{constructor(){}publicmethod1(){if(this.method2()){//Dosomething}else{//Dosomethingelse}}privatemethod2(){returntrue;}}现在要测试method1()我需要stubmethod2()这是一个私有(private)方法。这是我正在尝试的:sinon.stub(A.prototype,"method2");Types

javascript - stub 模块功能

编辑:更精确一点。我想测试我们团队创建的GithubAPI包装器扩展的用例。对于测试,我们不想直接使用API包装器扩展,所以我们想stub它的功能。对API包装器的所有调用都应该为测试而stub,而不仅仅是创建一个克隆stub。我在Node.js中有一个模块“github”:module.exports=function(args,done){...}我要求这样:vargithub=require('../services/github');现在,我想使用Sinon.jsstubgithub(...):varstub_github=sinon.stub(???,"github",fun