问题标签 [mockrunner]

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 投票
2 回答
4922 浏览

queue - 如何使用 mockrunner 设置模拟队列来测试 xml 过滤器?

我正在使用http://mockrunner.sourceforge.net/中的 mockrunner 包来设置一个模拟队列,用于 JUnit 测试一个 XML 过滤器,其操作如下:

  1. 为 ftp 服务器设置可识别的属性以放置和获取 xml 输入以及跟踪作业的 jms 队列服务器。一旦接收到队列消息,就会远程等待实际解析 xml 的服务器。
  2. 使用 ftp 创建一个远程目录并使用 mqconnectionfactory 启动到队列服务器的给定地址的队列连接。
  3. 一旦在 2) 中创建了新的队列条目,过滤器将等待新的队列消息出现,表示远程服务器已完成作业。然后过滤器从 ftp 中抓取修改后的 xml 文件并将其传递给下一个过滤器。

我正在处理的 JUnit 测试只需要通过启动本地 ftp 和模拟队列服务器来模拟此环境以供过滤器连接,然后等待过滤器连接到队列并将新的 xml 输入文件放在本地目录中通过本地 ftp 服务器,等待队列消息,然后稍微修改 xml 输入,将修改后的 xml 放在新目录中,然后向队列发布另一条消息,表示作业已完成。

我在网上找到的所有教程都使用 EJB 和 JNDI 来查找队列服务器。如果可能的话,我想通过在我的本地机器上创建一个模拟队列并以最简单的方式连接到它,而不是使用 EJB 和 JNDI 来回避这条路线。

提前致谢!

0 投票
3 回答
5335 浏览

java - Servlet 单元测试

目前我正在使用 TestNG 框架来测试应用程序业务逻辑,我最近添加了一些 Servlet 类。

如何在 TestNg 框架中对这些 Servlet 类进行单元测试?

0 投票
1 回答
1130 浏览

java - 为什么我要使用 MockRunner 而不是普通/手动依赖注入?

在我们公司,我们有一个服务层,它接收一些请求 XML,通过 JDBC 访问各种存储过程 (SP),处理数据并使用一些响应 XML 进行响应。最近人们开始在他们的 JUnit 测试中采用 MockRunner 来模拟来自 SP 的响应。使用 MockRunner 从 SP 设置模拟响应的代码看起来很糟糕(这是我打开的第一个随机测试类):

上面的代码很糟糕,原因有很多,但它确实清楚地显示了设置存储过程响应的复杂性和开销。

迄今为止,我一直在使用手动依赖注入来注入实际调用存储过程的类。我所要做的就是创建一个模拟 SP 调用程序类(负责 SP 的实际执行)并设置我想要的响应数据。我对这种技术非常满意,而且它比上面的更简单,因为它专注于数据而不是担心实现细节。但我的问题是,你什么时候想使用 MockRunner?单元测试似乎有点矫枉过正,所以我猜它更多地用于集成或系统测试?即便如此,我仍然觉得使用 DI 框架替换 SP 调用程序类然后为每个存储过程调用设置上面的所有代码更容易。请赐教!谢谢

0 投票
1 回答
606 浏览

java - 消息侦听器未接收到 JMS MockTopic 消息?

我正在尝试编写一个 jUnit 测试来显示JMS订阅者的start()函数启动了主题的消息侦听器(并且在调用start()之前没有使用消息)。

我遇到了一个问题,即在调用start()函数之前放置在主题上的消息在调用start()后不会被处理。调用start()后放置在主题上的消息将立即处理。

虽然这表明监听器在start()之前没有运行,但启动消息监听器应该会导致当前在主题上的所有消息都被处理。

我试图通过添加以下内容来确保持久性不是原因:

但这没有帮助。

实际运行程序似乎表明当前驻留在主题上的消息在start()上处理。有谁知道为什么当前MockTopic上的消息可能不会在start()得到处理?这是MockTopic的限制吗?

0 投票
1 回答
969 浏览

java - 升级到 jdk1.6 时 MockEJB 失败

我们正在将 J2EE 应用程序从 jdk1.4 升级到 jdk1.6 并迁移到不同的应用程序服务器。是的,很多活动部件。但是,我使用 Mockrunner 和 MockEjb 编写了许多 junit 测试,我称之为: MockContextFactory.setAsInitial(); InitialContext 上下文 = 新 InitialContext(); 然后继续将类绑定到上下文。

但是,我所有尝试创建新 InitialContext() 的测试都失败了,并出现这样的堆栈跟踪,我不知道为什么?非常感谢任何帮助,谢谢,

0 投票
1 回答
864 浏览

java - 每次运行 SQL 语句时更改 Mocked ResultSet 值

我正在使用 Mockrunner 为 select 语句创建一个模拟结果集。我有一个执行 select 语句(返回单个值)的循环。我想让结果集每次都返回一个不同的值,但是我一直无法找到有关如何根据调用语句的时间指定结果集返回值的任何信息。这是代码的伪代码片段:

在测试代​​码中:

在实际目标类中:

所以基本上我想在第一次返回类似 1 的东西,在第二次返回 2 而在第三次什么也不返回。到目前为止,我还没有找到任何可以利用的东西来实现这一目标。模拟的 select 语句将始终返回与它关联的最后一个结果集(例如,如果我创建了两个 MockResultSets 并将它们与相同的 select stmt 关联)。这个想法可能吗?

0 投票
2 回答
1541 浏览

java - mockrunner jdbc - 结果集中没有列/行

我第一次尝试使用 mockrunner 进行测试。连接已建立,但我只得到一个空的结果集。这是精简的工作示例:

预期的输出是带有“1”和“foobar”的结果集,以及执行的 SQL 语句。

0 投票
1 回答
844 浏览

java - Spring JMS 监听器接收空消息导致 CPU 消耗

我正在开发一个使用几个 jms 队列向/从外部系统发送/接收更新的应用程序。为了测试我的应用程序,我使用了 Mockrunner,特别是 jms 模块。我面临一个奇怪的行为:当我启动我的应用程序时,我可以看到 CPU 以 100% 的速度飙升,并且通过分析线程转储,我可以看到主要原因与我拥有的 jms 侦听器有关,这些侦听器看起来像接收到空消息这会导致如下消息:

现在我试图了解问题是否与我的应用程序和 mockrunner 的不良交互有关,或者是配置错误。

配置的相关部分是:

导致 CPU 无限旋转的侦听器是:

更新 我在 Mockrunner 项目上打开了一个问题,你可以在这里看到它。

0 投票
1 回答
100 浏览

java - 使用正则表达式的 Mockrunner(Java) 查询

我正在使用 Mockrunner 为我的单元测试模拟 Sql DB。以下是我的查询: -

现在我的 userIds 依赖于状态。我不需要我的测试用例依赖于列表内的排列 - userIds。所以我不需要完全匹配,而是正则表达式匹配。我已经通过以下代码启用了正则表达式匹配:-

但正如它所指出的,我不知道 Mockrunner 支持的正则表达式语法。

编辑:我无法匹配诸如"Select * from tables"with之类的查询"Select * from tab .*"。所以它必须与我在 Mockrunner 中使用正则表达式的方式有关

0 投票
1 回答
1075 浏览

java - @JmsListener 的 JUnit 测试

我是 Spring JMS 的新手,我正在尝试测试使用 @JMSListener 的方法。
你知道如何使用 mockrunner 或你知道的其他工具来测试它吗?

我看过这个样本,但我不确定这是否适用于我的情况。 https://dzone.com/articles/mockrunner-jms-spring-unit