Tag: unit testing

如果我的测试中有validation,期望是多余的吗?

我对期望和validation的目的和差异感到困惑。 例如 @Tested FooServiceImpl fooService; @Injectable FooDao fooDao; @Test public void callsFooDaoDelete() throws Exception { new Expectations() {{ fooDao.delete(withEqual(1L)); times = 1; }}; fooService.delete(1L); new Verifications() {{ Long id; fooDao.delete(id = withCapture()); times = 1; Assert.assertEquals(1L, id); }}; } 首先,如果这个测试编写得不好,请告诉我。 第二,我的问题:期望部分对我来说似乎是多余的,我无法想出一个不会出现的例子。

如何使用Spring测试具有@PostConstruct方法的类的构造函数?

如果我有一个带有@PostConstruct方法的类,我如何使用JUnit和Spring测试其构造函数及其@PostConstruct方法? 我不能简单地使用新的ClassName(param,param)因为它不使用Spring – @PostConstruct方法没有被触发。 我错过了一些明显的东西吗? public class Connection { private String x1; private String x2; public Connection(String x1, String x2) { this.x1 = x1; this.x2 = x2; } @PostConstruct public void init() { x1 = “arf arf arf” } } @Test public void test() { Connection c = new Connection(“dog”, “ruff”); assertEquals(“arf arf arf”, c.getX1(); […]

的Mockito。 validation方法参数是一个特殊的类

我有一个方法: void putObject( param) 有一些测试,我嘲笑这个方法,但我想知道,如何validation该方法是否使用特定类的参数调用? 试图以这样的方式做到: verify(foo).putObject((SomeClass)anyObject()); —— verify(foo).putObject(any(SomeClass.class)); —— ArgumentCaptor parameter = ArgumentCaptor .forClass(SomeClass.class); verify(foo).putObject(parametr); 只使用any()的第二个变量,但它不t check class of参数t check class of 。 那么如果可以validation该方法是否获得特定类的任何对象?

我该如何对线程代码进行unit testing?

到目前为止,我已经避免了测试multithreading代码的噩梦,因为它看起来像是一个雷区太多了。 我想问一下人们如何测试依赖线程成功执行的代码,或者人们如何测试那些只在两个线程以给定方式交互时出现的问题? 对于今天的程序员来说,这似乎是一个非常关键的问题,将我们的知识集中在这个imho上是有用的。

无法使用robolectric捕获HTTP请求

我试图用Robolectric捕获一个http请求方法tokenize方法向服务器发送一个请求,我只想测试发送的post:如果我尝试 //Cardtest.java Robolectric.setDefaultHttpResponse(200, “dummy”); card.tokenize(paymentHandler); Robolectric.getSentHttpRequest(0); 我有一个空数组错误 但我知道请求已发送,因为如果我删除第一行,则会出现以下错误: Unexpected HTTP call POST 如果我把log语句看起来似乎永远不会为http请求调用我的成功块。 如何确保调用我的HTTP请求成功回调。 (我已经尝试过Robolectric.runUiThreadTasksIncludingDelayedTasks();) 谢谢

以自动方式查找泄漏内存的JUnit测试

我们问题的根源是单身人士。 但单身人士很难打破,与此同时我们有很多unit testing使用单身人士而不用小心在tearDown()方法中完全清除它们。 我认为检测这些测试的好方法是寻找内存泄漏。 如果在tearDown()和System.gc()之后使用的内存大于测试开始时使用的内存,则测试泄漏或类加载器加载更多类。 有没有办法自动检测这类问题?

maven / surefire在unit testing后清理的好方法是什么,无论它们是否通过?

我们有一些unit testing,不幸的是创建了内存映射的NIO文件,这些文件无法被创建它们的进程删除(某些Windows问题)。 无论如何,我想在这些测试之后进行某种清理,无论它们是否通过。 我打算在准备包阶段运行一个小的ant脚本,但如果任何测试失败,肯定会立即退出。 除了进入具有后测试阶段的故障安全插件之外,有什么聪明的方法可以运行我的清理,无论通过还是失败? 我怀疑不是 – 我已经完成了所有可靠的配置选项…… 编辑:内存映射的nio文件无法在同一进程中删除,即使是deleteOnExit也是如此。

在Storm TrackedTopologyunit testing中运行Trident拓扑

如何运行Trident拓扑的JUnit测试,以便在测试和validation每个阶段的输出时允许元组流经拓扑? 我已经尝试在Storm的测试框架内运行,但它不能实现Trident的validation和一致执行。 这是一个示例拓扑,其中包含一些内联注释,其中我遇到的问题最多。 import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.List; import org.junit.Test; import storm.trident.TridentState; import storm.trident.TridentTopology; import storm.trident.operation.builtin.Count; import storm.trident.testing.MemoryMapState; import storm.trident.testing.Split; import backtype.storm.Config; import backtype.storm.ILocalCluster; import backtype.storm.Testing; import backtype.storm.testing.FeederSpout; import backtype.storm.testing.TestJob; import backtype.storm.testing.TrackedTopology; import backtype.storm.tuple.Fields; import backtype.storm.utils.Utils; public class WordCountTopologyTest { @Test public void testWordCountTopology() throws Exception { Testing.withTrackedCluster(new WordCountTestJob()); } public class WordCountTestJob […]

为Junit测试编写测试用例

作为开发人员,我是unit testing的新手,并且需要编写测试用例来对以下代码进行unit testing。 有人可以帮助我,并给我一些关于如何在eclipse中编写unit testing的指示。 private void handle(final DocumentEvent e) { Document doc = e.getDocument(); try { String text = e.getDocument().getText(0, doc.getLength()); if (text.length() >= maxMessageSize) { try { component.getHighlighter() .addHighlight(maxMessageSize, text.length() + 1, painter); } catch (BadLocationException ex) { System.out.println(ex.getMessage()); } } else { component.getHighlighter().removeAllHighlights(); } } catch (BadLocationException e1) { System.out.println(e1.getMessage()); } } […]

reflection性地获取项目中的所有包?

我怎样才能反思地获得项目中的所有包? 我从Package.getPackages()开始,但只获得了与当前包关联的所有包。 有没有办法做到这一点?