问题标签 [ts-mockito]
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.
angular - 检查是否使用了 setter
我的服务中有一个 setter/getter
现在我使用 ts-mockito 模拟了服务,并想检查是否调用了 setter。我尝试通过实例上的 getter 检查变量,但这并没有返回我的值。
组件(FooComponent):
单元测试:
测试打印Foo Service is now: 2
但expect
失败并带有Expected null to equal 2
.
reactjs - 如何验证存储函数调用?
开始练习单元测试。
并面临这样的问题:我正在尝试测试存储方法调用。
当我运行这个测试时:
但有这样的错误
如果我像这样通过组件方法包装存储方法:
测试通过,一切都很有趣。是否有可能验证存储方法而不用组件方法包装它?
typescript - 如何在控制器中注入 ts-mockito 模拟对象
我的背景是 PHP(Laravel 基础),所以如果我不是 100% 认为 Typescript/Nodejs 应该如何工作,请原谅我。
我正在尝试测试一个控制器,supertest
我的项目是使用restify和inversify for DI制作的。
使用 Mocha/Chai 和 ts-mockito 进行模拟——我的目标是拒绝一个承诺
when(mockedService.getRates(anything())).thenReject();
我的控制器具有以下构造函数:
然后进行测试:
我正在尝试用mockedService
在 Laravel 中,控制器将通过构造函数进行类型提示,或者我将$this->app['my_service'];
解决绑定问题,并且在单元测试期间我可以创建一个模拟并换出。
我找不到在打字稿中实现相同目标所需的信息。请问有什么指导吗?
typescript - tsmockito - 如何模拟一个接受 lambda 参数的函数
我有一个接受 lambda 的函数(并且 lambda 也接受一个参数)。如何模拟该功能?
在下面的示例中,我试图模拟connection.xmppStanzas
:
示例类:
测试SomeClass
:
问题是when
不返回节流(所以我所有的测试以确保对节做的事情都失败了)并且verify
我最后真正快速地投入也失败了,证明为什么when
没有返回正确的值:因为 tsmockito 无法匹配 lambda。显然,当您将参数传递给 lambda 时,它会创建一个新实例,甚至deepEqual
无法处理它。
我可以这样做when(connection.xmppStanzas(anything())).thenReturn(stanzas$)
,但我真的想确保我的函数doSomething()
正确检索 ID 并将其传递给我的匹配器。这是测试的一部分。
所以我的问题是:我如何处理模拟一个接受参数的 lambda 的函数?
angular - 如何模拟组件实例事件
我想使用ts-mockito测试从材质对话框实例dialogEvent
触发的事件 () :
我如何在测试中监视或模拟它?
typescript - 如何使用 ts-mockito 模拟方法?
我想通过 ts-mockito@2.5.0 创建一个类的模拟对象,但我无法正确设置它。
这是人为的测试用例:
正如测试用例所暗示的那样,我希望我的模拟返回“我被嘲笑”的返回值。
但我得到的是一个 ts-mockito-specifc 对象,其中包含以下属性:methodStubCollection
、matchers
、 mocker
和name
.
我应该如何设置它按预期工作的模拟?
旁注:这个测试用例只是为了展示我正在经历的奇怪行为。这不是我的实际测试。我想在单元测试中为不同的服务使用模拟。)
javascript - 在异步函数中使用 ts-mockito 引发错误
我正在尝试使用 ts-mockito 测试 API 端点。事情进展顺利,直到我开始异步......我的测试:
服务:
到目前为止,一切正常。但是当我开始实现地理定位服务时,我不得不将它声明为一个 Promise,因为它执行的是一个 http 请求。
然后我无法再捕获抛出的错误,如果它毕竟被抛出......任何线索我应该如何捕获或抛出这个错误?提前致谢。
typescript - ts-mockito 模拟的承诺永远不会解决
鉴于这种
当location.get()
被调用时,then
永远不会解决,即使在 60 秒超时时,拒绝似乎也有效。我究竟做错了什么?
typescript - 你能用 ts-mockito 模拟一个带有构造函数的接口吗
首先,我没有结婚,ts-mockito
这正是我们正在使用的。
话虽如此,我们有一个接口,它有一个构造函数,我们想模拟并注入另一个类进行测试。这可能与ts-mockito
.
无论我尝试什么,我最终都会得到模拟的输出is not constructable
。
这是一个可能产生错误的示例代码
有谁知道如何即时制作模拟?
angular - 确保 spyOnProperty 使用 Object.defineProperty 创建可配置属性
在升级到 Angular 9(从 8.1)和 Typescript 3.7(从 <3.6)时,我遇到了一个问题spyOnProperty
我的服务看起来像:
我在升级之前的测试将spyOnProperty
但是,我现在收到此错误:
我知道我需要Object.defineProperty
as configurable: true
,因为当我通过 Jasmine 时,我看到它失败了:
并且descriptor
由descriptor = Object.getOwnPropertyDescriptor(proto, methodName);
所以在Javascript中我想:
以确保可以监视此属性。
但是,我的问题是如何使用 Typescript 应用相同的可配置项。我试图Object.defineProperty
再次运行,但我得到一个错误defineproperty Cannot redefine property
,这对于为什么首先存在检查是有道理的。
我尝试使用这里configurable
定义的建议装饰器:
但这不起作用,还要注意,当我在上述方法中放置断点时,descriptor.configurable
实际上true
在分配value
. 所以我不确定究竟是什么导致了测试中的原始错误。