草庐IT

partial-mocks

全部标签

php - 在 PHPUnit 上使用方法中的类型提示创建接口(interface)的 Mock 对象失败

我创建了以下界面:然后我尝试使用PHPUnit3.4创建此接口(interface)的Mock对象,但出现以下错误:fatalerror:Mock_Action_b389c0b1::execute()的声明必须与D:\Xampp\xampp\php\PEAR\PHPUnit\Framework\TestCase.php(1121)中的Action::execute()兼容:eval()'代码在第2行我查看了从PHPUnit获得的堆栈跟踪,发现它创建了一个实现接口(interface)Action的Mock对象,但按以下方式创建了execute方法:如您所见,PHPUnit接管了数组类型

使用 $mock->expects($this->at(...)) 时 PHPUnit "Mocked method does not exist."

我遇到了一个关于PHPUnit模拟对象的奇怪问题。我有一个应该被调用两次的方法,所以我使用了“at”匹配器。这在第一次调用该方法时有效,但由于某种原因,第二次调用它时,我得到“模拟方法不存在”。我以前使用过“at”匹配器,但从未遇到过这种情况。我的代码看起来像这样:classMyTestextendsPHPUnit_Framework_TestCase{...publicfunctiontestThis(){$mock=$this->getMock('MyClass',array('exists','another_method','...'));$mock->expects($thi

Node.js Mocha 单元测试错误 re : Mongoose mocks with Mockgoose, "Error setting TTL index on collection : sessions"

制作这个开源应用程序,outrightmental/partybot-web.gitonGitHub基于Daftmonk强大的Yeomanangular-fullstack生成器。在Node.js的测试(本地和CI)期间,我一直在尝试用我的技能来解决当前看似热门的MongoDB模拟问题。我是Mocha的粉丝用于运行和Chai用于断言。在淘汰了许多早期的竞争者之后,我现在正在试验Mockgoose用于模拟Mongoose模型以代替MongoDB。另请参阅我的开源partybot-webCIonTravis中与此问题相关的构建到目前为止,这个配置已经能够成功运行一些数据库操作,证明Mock

Node.js Mocha 单元测试错误 re : Mongoose mocks with Mockgoose, "Error setting TTL index on collection : sessions"

制作这个开源应用程序,outrightmental/partybot-web.gitonGitHub基于Daftmonk强大的Yeomanangular-fullstack生成器。在Node.js的测试(本地和CI)期间,我一直在尝试用我的技能来解决当前看似热门的MongoDB模拟问题。我是Mocha的粉丝用于运行和Chai用于断言。在淘汰了许多早期的竞争者之后,我现在正在试验Mockgoose用于模拟Mongoose模型以代替MongoDB。另请参阅我的开源partybot-webCIonTravis中与此问题相关的构建到目前为止,这个配置已经能够成功运行一些数据库操作,证明Mock

memory - 断电时如何防止 "partial write"数据损坏?

在嵌入式环境中(使用MSP430),我看到一些数据损坏是由于部分写入非volatile内存而导致的。这似乎是由于写入期间的功率损耗(写入FRAM或信息段)造成的。我正在使用CRC验证存储在这些位置的数据。我的问题是,防止这种“部分写入”损坏的正确方法是什么?目前,我已修改我的代码以写入两个单独的FRAM位置。因此,如果一个写入中断导致无效的CRC,则另一个位置应保持有效。这是一种常见的做法吗?我是否需要为任何非volatile内存实现这种双重写入行为? 最佳答案 一个简单的解决方案是维护两个版本的数据(在闪存的不同页面中),当前版本

c++ - 什么是 'partially overlapping objects' ?

我刚刚经历了this中所有可能的未定义行为。线程,其中之一是Theresultofassigningtopartiallyoverlappingobjects我想知道是否有人可以给我一个“部分重叠对象”的定义以及如何创建它的代码示例? 最佳答案 正如其他答案中指出的那样,union是最明显的安排方式。这是一个更清晰的示例,说明内置赋值运算符可能如何产生部分重叠的对象。如果不是部分重叠的对象限制,此示例将不会显示UB。unionY{intn;shorts;};voidtest(){Yy;y.s=3;//sistheactivememb

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

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

c++ - std::partial_sum 和 std::inclusive_scan 有什么区别?

在阅读std::inclusive_scan时,似乎没有任何例子。我觉得它与std::partial_sum非常相似.partial_sum:templateOutputItpartial_sum(InputItfirst,InputItlast,OutputItd_first);inclusive_scan:templateOutputItinclusive_scan(InputItfirst,InputItlast,OutputItd_first);有人可以详细说明他们的区别吗?我什么时候会选择其中之一? 最佳答案 std::i

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