问题标签 [hippomocks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 带有 weak_ptr 的 HippoMocks
只是遇到了代码的编译错误,试图模拟一个std::weak_ptr
作为参数的方法。HippoMocks
在调用方法时有一个代码来比较它With
,它不会被编译。我将不胜感激任何帮助。
这是代码:
MS VS 2010 编译器不喜欢最后一行并抱怨:
c++ - Hippomock 的 MockRepository::BasicRegisterExpect 中的 NotImplementedException
在尝试使用 Hippomock's 注册期望时,MockRepository::ExpectCall
我在 's 以下行遇到了我承认不理解的NotImplementedException
异常:MockRepository::BasicRegisterExpect
不幸的是,我无法使用精简示例重现异常。
因此我的“简单”问题:
- 在什么情况下会在期待调用时引发这个异常?
- 这段代码行究竟测试了什么?
unit-testing - 等效于 Hippomocks 先前存在的 MockRepository::ClassMock
在 Hippomocks 的官方 3.1 版(https://www.assembla.com/spaces/hippomocks/wiki/Home)中,曾经有一个MockRepository::ClassMock
构造模拟对象(与之相反MockRepository::InterfaceMock
),这在处理时非常有用使用非虚拟类方法。
当前版本的MockRepository::Mock
功能MockRepository::InterfaceMock
与我认为的相同。是否有可能使用当前版本构造模拟对象?
我不使用 3.1 版本的理由:我需要也非常有用的 ExpectCallFunc 来测试不属于稍后介绍的类的函数。
不使用placement new 的理由:placement new 将在被Hippomocks 模拟后构造对象,从而“重置”先前由Hippomocks 更改的虚函数表。
c++ - HippoMock : 模拟类的一部分
我想知道是否可以使用 HippoMock 模拟类的一部分。
例子
我想模拟方法1以测试方法2
显然我使用 HippoMock 并且我在方法 2 中有一个错误,所以我进行了单元测试以纠正它并确保它不会回来。但我找不到这样做的方法。
我试试这个
本机 cpp 有一些解决方案吗?使用其他模拟框架?
非常感谢
安布罗斯·佩蒂特热内
c++ - 参数为 lambda 时编译失败。[使用河马]
我用 hippomocks 编写了一个单元测试,但在编译时出错。
编译器是VS 2010。
我该如何解决?
输出是:
c++ - 如何像 hippomocks 一样拦截自由函数调用?
我想知道 hippomocks 做了什么来拦截exit
调用函数,例如如下代码所示:
c++ - MockRepository 的多个共存实例是否可能?如果是,在什么条件下?
MockRepository
就编译器而言,Hippomocks支持多个实例。但是,某些用例是不可能的,因为它们会导致单元测试可执行文件崩溃。让我们考虑以下示例。
此示例(在 Visual C++ 2010 中)导致未处理的异常(访问冲突读取位置 0x00000048)。
- 分析 Hippomocks 标头表明,似乎没有预见到这个用例(参见
MockRepoInstanceHolder
)。只允许一个实例的原因是什么? - 我可以理解,例如不同
ExpectCallFunc
的MockRepository
实例可能会相互矛盾。这是它背后的原因吗? - 我们可以通过将
mockRep1
实例化移到MySubTest()
调用之后来解决示例中的问题,但我们很难在一开始就理解这个问题。是否有编译时或运行时的可能性来明确识别这样的多个实例?
c++ - HippoMock 总是抛出 NotImplemented
我正在尝试使用 HippoMock 模拟接口,以便在使用所述接口的类中使用。我构建了一个模拟对象并设置了 exceptCallOverload,一切都编译得很好。但是,我正在测试的类调用了模拟对象,它调用了 mock::NotImplemented 函数。
此外,我正在模拟的例程接受对接口的引用,但传入的对象存储在 shared_ptr 中。如果我使用 .With 并传递 shared_ptr 对象,我得到一个错误报告 comparer::compare can't match template parameters,这是可以理解的。因此,如果我只是传入对接口的引用,我会得到一个错误,不能实例化纯虚拟类。
在使用 HippoMark 方面,我觉得这让我陷入了困境。
一个小例子:
c++ - Hippomock中Expect调用函数的参数中的模板函数
我想隔离writeMemory
,但由于以下错误而无法隔离:
../../Util/UnitTest++/../../UnitTests/KeeperDive_Test.h:66:57: 错误:预期表达式 mocks.ExpectCall(Skillmock, Skill::writeMemory).With(template (Skillmock));
hippomocks - Hippomocks 期望调用类实例
如何使用类实例或结构实例作为“with”部分中的参数之一来设置期望调用?该文档似乎没有显示如何做到这一点。我看到使用简单的参数,如字符串和整数 - 但不是类实例。您通常只是将该参数设置为“_”并完成它吗?