问题标签 [mockolate]

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.

0 投票
1 回答
653 浏览

apache-flex - Mockolate:调度绑定事件?

是否可以要求 Mockolate 调度绑定事件?

例如,给定这个类:

我想要模拟:

在字段更改propertyChangeEvent时分派一个。name

0 投票
1 回答
376 浏览

apache-flex - Mockolate:突然得到VerifyError:非法覆盖

几周前我开始使用 mockolate 来编写我的单元测试,直到现在它工作得很好。突然之间,昨晚,我开始在每次使用 mockolate 的测试中遇到如下错误:

在阅读中,似乎这个错误通常是由于在不同版本的 sdk 上编译了不同的 swfs/swcs,但是我的 mockolate swc 和我的源代码都是在同一个 sdk 版本上编译的,而且这并没有改变一会儿。我什至尝试在我的项目中仅包含 mockolate 作为源,并且仅包含它的 swcs 作为 lib 路径。任何建议将不胜感激。

-滚刀

0 投票
1 回答
1091 浏览

apache-flex - 如何使用 FlexUnit 4 和 mockolate 在模拟对象上模拟 AsyncResponder 和生成的处理程序函数

我正在尝试为我在 Flex 4.5.1 中编写的一个类编写一些单元测试,分别使用 FlexUnit 4 和Mockolate作为我的测试和模拟框架。我正在为我的自定义事件使用as3 信号

我正在编写和测试的功能是ArcGIS API for Flex中QueryTask类的包装类 (QueryQueue) 。这使我能够轻松地将多个查询任务排队等待执行。我的包装器 QueryQueue 将在处理完所有查询响应后调度一个事件。completed

界面非常简单。

这是一个示例用法:

对于我的测试,我目前正在模拟 QueryTaskFactory 和 QueryTask 对象。简单的测试,例如确保查询被相对直接地添加到队列中。

但是,我也希望能够测试该execute方法。此方法应执行添加到队列中的所有查询。处理完所有查询结果后,将completed调度事件。测试应确保:

  1. execute在每个查询上调用一次且仅一次
  2. inProgress = true结果尚未处理
  3. inProgress = false处理结果时
  4. completed在处理结果后调度
  5. canceled从不调用(对于有效查询)
  6. 队列内完成的处理正确处理和打包查询结果

到目前为止,我可以为项目 1 到 5 编写测试,这在很大程度上要归功于 weltraumpirat 提供的答案。我的执行测试现在看起来像这样。

QueryQueue.execute方法看起来像这样。

对于上面的测试#6,我想要做的是测试在queryTaskResultHandler和中返回的数据是否queryTaskFaultHandler被正确处理。

也就是说,completed在所有查询响应(包括成功和失败结果)返回之前,我不会调度事件。

为了测试这个过程,我认为我需要模拟每个模拟查询任务的结果和故障处理程序中返回的数据。

那么,我如何模拟传递给通过AsyncResponder使用 FlexUnit 和 mockolate 创建的结果处理程序的数据。

0 投票
1 回答
747 浏览

actionscript-3 - Mockolate - 在具有相同参数的模拟上调用相同的方法,但返回不同的结果

我正在使用 Mockolate 和 flex unit 4 为我在 AS3 中的测试编写模拟。我想在具有相同参数的模拟上多次调用相同的方法,并且每次都返回不同的结果。一个基本的例子是:

这导致:

和错误:

我想要的是

并且没有例外,即测试通过。

我尝试了一些替代方案,例如:

和其他无济于事。当然,我在这里遗漏了一些简单的东西。这看起来应该很容易。

多谢你们,

西奥。

0 投票
0 回答
258 浏览

actionscript-3 - 用 mockolate 模拟 FileReference.data?

我正在尝试在我正在处理的 flex 项目中模拟 FileReference。

删除一些属性,例如名称和大小可以正常工作,但数据只是拒绝工作。这是说明问题的代码:

如果我设置断点并在调试器中检查 frMock,它看起来像这样:

如您所见,模拟对数据的处理方式不同。

几个小时以来,我一直在努力解决这个问题,并且真的可以使用一些帮助来解决这个问题。

更新:
代码在作为 Flex 库项目或 Flex 项目 (Air) 运行时工作。当代码在浏览器插件中运行时,它会失败。检查库项目中的调试器还显示数据属性未嵌套在 [Inherited] 内,而是与其他属性处于同一级别。

更新:
我在使用 URLLoader 时遇到了同样的问题,但这次正好相反。只有在浏览器插件中运行测试时,才能模拟 URLLoader。
由于我正在创建一个类来处理本地和远程文件加载,使用 FileReference 或 URLLoader,取决于输入,我有效地阻止了对这个类进行完全的单元测试。:(

0 投票
1 回答
2190 浏览

maven - 如何让 Flexunit、FlexMojos 和 Mockolate 协同工作?

在过去的两天里,我一直试图让 FlexUnit、FlexMojos 和 Mockolate 一起工作,以便我可以在 TeamCity 中运行测试,但我没有任何运气。

我目前在 Teamcity 上有一个使用 FlexMojos 和有效的 FlexMojos-flexunit 的项目,但是该项目没有使用 Mockolate。

该项目的 pom 如下所示:

它工作正常。但是,当我添加对 Mockolate 的引用时,由于 FlexUnit 中的某种冲突类,构建失败。

我在此链接上读到我需要删除对 flexMojos-flexunit 的引用,并在 pom.xml 中给出我自己对 FlexUnit4 的引用。我这样做了。但是现在我得到一个错误阅读:

我当前不起作用的 POM 如下所示:

FlexUnit4 swc 存在于我的工件中,在尝试构建之前,IntelliJ 在 Maven 中没有给我任何警告或错误。

谢谢你的帮助。

0 投票
1 回答
217 浏览

apache - Mockolate 验证错误:非法覆盖.. Flex SDK 4.10 更新后

自从我们将应用程序中的 flex sdk 升级到 4.10 后,我们在运行使用 mockolate 的单元测试时遇到了验证错误。

它们似乎发生在模拟ByteArray在方法签名中使用 a 的接口时。

示例界面:

示例测试类:

使用 flexmojos 6.0.1 编译和运行测试时,会抛出以下错误:

VerifyError:错误#1053:在 mockolate.generated.IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED 中非法覆盖 IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED

我最初的怀疑是 playerglobal(或我们的例子中的 airglobal)的 sdk 版本问题,所以我用 sdk 4.10 重新编译了 mockolate(和 flexunit),没有任何结果。

唯一可行的方法是从方法签名中删除 ByteArray 类型......但这并不是一个真正的选择:-)(这在以前从来不是问题)

有没有人遇到过类似的问题?

谢谢

0 投票
1 回答
132 浏览

actionscript-3 - 使用 Mockolate 模拟一个 getter,而不是返回一个数组

我正在为在我的对象上调用 getter 的函数编写单元测试。getter 应该返回一个数组,但我得到一个异常抛出:

我嘲笑我的吸气剂:

我的 getter 在对象接口中定义:

我是否需要重写 getter 函数或我的模拟语句?

0 投票
1 回答
171 浏览

actionscript-3 - 如何调试 Mockolate 以进行单元测试

在进行单元测试时actionscript-3mockolate我遇到了很多问题/错误:

Mockolate 错误和调试的文档记录很差,搜索也没有结果,因此解决这些问题变得非常棘手。