问题标签 [easymock]

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 回答
1034 浏览

java - 使用 Ivy 的类路径问题

我正在使用 Ivy 来管理我的依赖项,这导致了我的 easymock 问题

我的 ivy.xml 文件具有以下内容:

然后我跟随其他库依赖项,希望万一其他库使用另一个版本的easymock,那么至少我的库得到正确的库。

但是在我解决之后,在eclipse中我可以看到有2个版本的easymock(1.2和2.5),然后首先列出了1.2。

当我运行单元测试时,我在 org.easymock.internal.RecordState 的构造函数上得到一个 java.lang.NoSuchMethodError,它采用 org.easymock.internal.IMocksBehavior。

这表明我正在使用旧版本的 EasyMock。

有什么想法可以解决这个问题吗?

0 投票
2 回答
43717 浏览

java - 让 EasyMock 模拟对象抛出异常

我正在使用 EasyMock 为许多协作类编写单元测试。其中一个类(让我们称之为Foo)打开一个到远程服务器的网络连接,并将该服务器的 XML 响应解析为其他类可以使用的东西。

目前,我的测试仅包含所有内容都很复杂且远程服务器已启动并运行并按预期返回 XML 的场景。但是,如果可以模拟Foo以便模拟远程服务器关闭时会发生什么,或者有其他一些问题IOException导致Foo.

我看过 EasyMock API,我看不到任何看起来像要求模拟抛出异常的方法的东西。

对我来说,进行Exception基础测试并不是绝对必要的,但我很好奇 EasyMock 是否可能,我认为Foo以这种方式测试公共合约会很有用。

以前有人用 EasyMock 做过类似的事情吗?

参考

0 投票
2 回答
243 浏览

java - 重构测试

我有一段代码大致相当于以下内容。

这些类(内部或外部)都没有单元测试,事实证明内部类 ,MyCallable有一个错误。在我上面给你的代码的简化版本中,这个错误不存在。

因此,假设您决定修复错误,并为MyCallable. 我的问题是这个;您将如何为MyCallable内部类编写单元测试?

我自己的解决方案是首先重构MyCallableConcreteThread. MyCallable在它自己的文件中创建了一个公共类,ConcreteThread现在将 DAO、Services 和 Singleton 作为构造函数参数传递给MyCallable,而不是依赖于内部类对它的私有变量的访问。

然后,我在单元测试中大量使用 EasyMock 来模拟这些依赖项并验证它们是否以我预期的方式被调用。

所有这一切的结果是代码MyCallable比以前大了一些。由于它不再可以访问 中的私有变量ConcreteThreadConcreteThread因此必须将它们作为参数传入构造函数中,并将MyCallable它们设置为私有变量。

你认为这是错误的做法吗?也许通过执行这种重构,我破坏了封装并在代码库中添加了不必要的样板?你会在测试中使用反射吗?

0 投票
4 回答
5367 浏览

date - 带有新日期()的 Junit

当我有以下方法时,junit 测试会是什么:

子方法 storeUser:

我遇到的问题是日期,为实体用户设置然后存储。我使用junit和easymock。

0 投票
1 回答
1107 浏览

java - EasyMock 和 Ibatis

在我的 DAO 层中,我通过调用存储过程来完成所有数据库工作。我想知道是否有人成功地使用 EasyMock 测试了他们的 DAO 层?

谢谢达米安

0 投票
1 回答
483 浏览

java - GWT 和 EasyMock - 无法调用 createStrictMock()

我正在尝试使用 EasyMock 来帮助测试我的 GWT 项目,但我在createStrictMock方法上遇到错误:

我究竟做错了什么?

0 投票
4 回答
19626 浏览

java - java.lang.IllegalStateException:返回值类型不兼容

我正在使用 EasyMock 在测试用例中创建模拟类。

类型属于String数据类型。在我的开发环境中,它运行良好。但是如果我转移到我的服务器并进行构建,它会失败并出现以下错误:

我不知道为什么它在服务器中失败并在我的开发机器中执行。

开发 EasyMock 版本:2.5.2

0 投票
1 回答
4229 浏览

java - 需要一些基本的 PowerMock / EasyMock 问题的帮助

我对 PowerMock/EasyMock 的世界还比较陌生,我认为应该相对简单的东西就是行不通。也许有人可以告诉我哪里出错了。

考虑这两个类:

现在,在测试类中,我想测试 Bar 方法 doSomething。我遇到的问题是它对 Foo 的使用。如您所见,将 0 传递给 Foo 将导致除以零错误。我想存根/抑制 Foo.doStuff() 这样就不会发生这种情况。我真正需要做的就是确保确实调用了 doStuff()。所以,我这样做了:

当我运行它时,我得到了除以零异常。我曾认为使用 expect() 调用并指定返回值 1 会阻止该方法被执行。显然情况并非如此。所以第一个问题是,为什么不呢?

因此,我尝试执行上面注释掉的语句。也就是说,我注释掉了 expect() 调用,并使用了其他两个语句,认为我必须抑制该方法的执行。我发现如果我不执行suppress() 语句,我总是会得到除以零的异常。但是,通过在其中添加抑制语句,我得到一个断言错误,它说 doStuff 应该被调用 1 次,而实际调用是 0。

那么,为什么该方法不被视为已执行?

我如何让模拟的东西“存根”该方法,以便它被认为是被执行的并没有真正做任何事情?

我一直在处理的情况实际上对 doStuff 有一个无效的回报。对于处理没有返回值的方法,与那些有返回值的方法相比,必要的模拟语句有何不同?

似乎我正处于完成这项工作的风口浪尖,但我觉得我在这里尝试了某种不正确的陈述组合。我已经对此深有感触,阅读了一堆示例,但仍然不足。

有什么帮助吗?

谢谢,

克雷格

0 投票
5 回答
45106 浏览

java - 使用 Powermock 时出现 NoClassDefFoundError

我正在junit使用测试运行器运行一个测试用例PowerMock。我正在使用以下命令行来执行它:

这样做时,我收到此错误:

我该如何解决?

0 投票
1 回答
1104 浏览

java - java EasyMock 忽略来自 TestedClass 方法的对象调用

我有一堂课,我有一个对象。我正在测试一个调用该对象的方法,但该对象与我的测试无关,所以我想忽略它。

所以我想在method()不使用参数调用这些方法的情况下进行测试obj

感谢你