- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有谁知道使用 doh 来测试对象是否订阅了特定主题的方法?
我正在努力寻找任何描述此类测试的文档。
我问这个问题的原因是,当我构建我的小部件时,我将它订阅了一个主题。我想要一个单元测试来测试小部件在构建后是否始终具有该主题订阅。
我的主题有一个私有(private)变量,我在创建订阅时将其用作主题字符串。
例如这里有一个名为“CustomTopic”的主题:
define([], function(){
var topicString= "topicString";
return {
TOPIC_STRING: function(){
return topicString;
}
}
})
我的小部件中的构造函数如下所示:
constructor: function() {
topic.subscribe(CustomTopic.TOPIC_STRING(), function(params) {doSomething(params)});
}
所以你可以看到根据私有(private)变量值检查主题订阅是多么容易,如果我能弄清楚如何查看我的小部件拥有的所有订阅的话?
供引用:
最佳答案
我建议您的测试如果专注于行为而不是实现,将会更加稳健/有用。在这种情况下,测试您的小部件是否响应主题(或者更好的是,导致主题发布的事件,以进行更多的集成测试)而不是 try catch 订阅本身会更有意义。
当然,您可以尝试包装 topic.subscribe(坏事),或检查小部件的私有(private)句柄列表(另一个坏事)。顺便说一句,我希望您实际上保存了 topic.subscribe 返回的句柄,以便您可以在稍后对象被销毁时将其删除(以前是取消订阅)。
比那些更好的方法是简单地创建一个新对象,发布到该主题,然后查看是否调用了 doSomething,或者是否出现了所需的结果。虽然 doh 不支持监听函数调用,但 dojo/aspect 是实现此目的的理想选择。所以你可能有这样的东西:
var myWidget = new myWidget(); // presumably subscription happened,
// but we only care about later behaviour
var somethingDone = false;
aspect.after(window, "doSomething", function(){somethingDone = true;});
topic.publish(CustomTopic.TOPIC_STRING());
doh.assertTrue(somethingDone);
事实上,我假设 doSomething 不是一个全局方法,因此您必须正确地确定它的范围,否则它应该可以正常工作。目前 topic.publish 是同步的,所以这应该可以正常工作,但它在未来可能会变成异步的,在这种情况下,您可能希望避免调用 doh.assertTrue 直到稍后的阶段。
关于javascript - Dojo 和 doh : test for specific topic subscriptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14645099/
根据槌documentation ,可以逐步训练主题模型: "-output-model [FILENAME] This option specifies a file to write a seri
下面我创建了一个完整的可重现示例来计算给定 DataFrame 的主题模型。 import numpy as np import pandas as pd data = pd.DataFrame({
在启动 Kafka 时出现以下错误。 KeeperErrorCode = NoNode for /brokers/topics/test-topic/partitions 任何帮助将不胜感激。 最佳答
我是这个范例的新手,所以请容忍我的愚蠢。我开始阅读这个主题是因为我正在构建一个物联网系统,该系统将使用消息队列来允许设备相互通信。 我目前正在使用 Azure 的服务总线,但是我相信我的问题通常适用于
我有三个 Kafka 经纪人( kafka_2.11-0.10.0.0 )每个经纪人的安全配置如下, listeners=PLAINTEXT://xxxx:9093,SASL_PLAINTEXT://
我使用apache-rocketmq发送消息,但出现异常。我尝试了csdn上的很多解决方案,但不起作用。现在我不知道如何处理它。 这是一个 Linux 服务器,运行 Rocketmq 4.2.0、ja
我收集了一些文档,其中大部分都是关于同一主题的,其余的基本上都是随机主题。我希望将文档分类为它们是关于“多数主题”还是这些随机“少数主题”之一。如果我在这个只有 2 个主题的语料库上使用主题建模算法会
我正在使用 gensim 包中的 LDA 算法来查找给定文本中的主题。 我被问到生成的主题将包含每个主题的不同词,例如,如果主题 A 中包含“猴子”一词,那么其他主题的列表中不应包含“猴子”一词。 到
我想使用 htaccess 更改我网站的 URL URL currently: example.com/index.php?p=my-topic-title I want to be like : e
我正在学习 Spring Boot 并制作了一个演示,但是当我发布一个添加对象的请求时,它不起作用! 错误信息是: { "timestamp": 1516897619316, "sta
背景 我们公司有由 Zookeeper 管理的 Apache Kafka。我们的 Spring Boot 应用程序之一需要检查所有可用主题的列表,并列出哪些主题启用了日志压缩 (cleanup.pol
在我的工作场所,我偶然发现了以下需要我解决的问题。尽管不是绝对需要,但首选解决方案。 有一个包含一组故事的数据库,每个故事都有一组与之关联的主题。主题存储在单独的表中,格式为 (storyid, to
我有一个由主题名称、描述组成的 Pandas 数据框 我正在尝试将其转换为主题名称、单词(出现在描述列中)及其频率 我已经试过了,但它只给了我描述的单词和频率,而不是主题名称级别。 import nl
我尝试使用以下命令删除现有主题(我使用 kafka 管理控制台检查过); #./kafka-topics.sh --zookeeper zookeeper.xx.com:2181/chroot --d
试图在一台机器上运行 Kafka 生产者,在另一台机器上运行消费者。 设置以下属性: 广告.host.name 广告端口 但是在控制台消费者上收到以下错误: bin/kafka-console-con
我正在使用 Gmail API,并尝试使用 Python 3.9 设置推送通知。当我尝试在 Gmail 收件箱上调用 watch() 时,出现错误,即使我已遵循针对类似问题给出的所有建议。错误如下:
我希望构建一个主题 map 来对内容进行分类。 例如,主题“艺术”可能有“艺术史”、“绘画”、“雕塑”等子类别。 我已经抓取了一些在线资源,但遇到了一个与我希望如何使用层次结构有关的问题。 我有很多内
我想在我的 Java 中编译 mallet(而不是使用命令行),所以我将 jar 包含在我的项目中,并引用了来自以下示例的代码:http://mallet.cs.umass.edu/topics-de
我正在尝试根据父级中的记录内容从kafka中的一个主题(父级)写入另一个主题(子级)。如果我从父主题消费,则示例记录为 {"date":{"string":"2017-03-20"},"time":{
我有一个 Kafka 生产者类,运行良好。生产者填充了 Kafka 主题。其代码如下: public class kafka_test { private final static String TO
我是一名优秀的程序员,十分优秀!