Tag: 测试

Unitils项目还活着吗?

任何人都知道unitils项目是否还活着。 页面最后一个版本在maven存储库中是3.3,它是3.4.2。(实际上有谷歌缓存版本的页面,其版本据说是3.4.2) 无论如何,这个项目有任何替代品。 我有点缺乏生动的社区,真的不想被迫死的项目。

如何使用@WebMvcTest并添加我自己的自定义filter?

Spring Boot 1.4添加了@WebMvcTest ,它连接了测试我的应用程序的Web片段所需的部件。 这太棒了,但我也想确保我的自定义filter和安全代码已连线,这样我就可以validation它是否正常工作。 使用@WebMvcTest时如何添加自定义filter?

内部错误(javaClasses.cpp:129)

我正在尝试在Eclipse上使用JUnit 4和Robolectric进行测试但是我一直收到此错误: Invalid layout of java.lang.String at value # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (javaClasses.cpp:129), pid=3546, tid=140317899335424 # fatal error: Invalid layout of preloaded class # # JRE version: 7.0_07-b10 # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode linux-amd64 compressed oops) […]

用Java维护对象方法契约的自动unit testing?

在开发Java应用程序时,我经常重写Object方法(通常是equals和hashCode)。 我想通过某种方式系统地检查我是否遵守每个类的Object方法的合同。 例如,我想要测试断言对于相等的对象,哈希码也是相等的。 我正在使用JUnit测试框架,所以最好我想要一些JUnit解决方案,我可以自动生成这些测试,或者一些测试用例可以以某种方式访问​​我的所有类并确保合同得到维护。 我正在使用JDK6和JUnit 4.4。

mockito与jMock的州有相同的习惯用语吗?

增长面向对象软件这本书在jMock中给出了几个例子,其中状态是明确的,而不是通过API公开它。 我真的喜欢这个主意。 有没有办法在Mockito做到这一点? 这是本书的一个例子 public class SniperLauncherTest { private final States auctionState = context.states(“auction state”) .startsAs(“not joined”); @Test public void addsNewSniperToCollectorAndThenJoinsAuction() { final String itemId = “item 123”; context.checking(new Expectations() {{ allowing(auctionHouse).auctionFor(itemId); will(returnValue(auction)); oneOf(sniperCollector).addSniper(with(sniperForItem(item))); when(auctionState.is(“not joined”)); oneOf(auction).addAuctionEventListener(with(sniperForItem(itemId))); when(auctionState.is(“not joined”)); one(auction).join(); then(auctionState.is(“joined”)); }}); launcher.joinAuction(itemId); } }

EasyMock void方法

我正在尝试使用EasyMock来模拟一些数据库接口,以便我可以通过包装方法测试业务逻辑。 在我的测试设置中使用以下方法返回的方法一直很顺利。 DBMapper dbmapper = EasyMock.createMock(DBMapper.class); userService.setDBMapper(dbmapper); 然后在我的实际测试中我跑 EasyMock.expect(dbmapper.getUser(userId1)).andReturn(mockUser1); EasyMock.replay(dbmapper); userService.getUser(userId1); 然后,此服务连接到dbmapper并返回对象(使用setter方法注入映射器) 这些类型的模拟似乎工作正常。 但是当我尝试运行测试时 userService.addUser(newUser1); 此方法调用void方法。 dbmapper.createUser(newUser); 我正在嘲笑这个方法。 我尝试了以下内容 EasyMock.expectLastCall(); EasyMock.replay(dbMapper); userService.addUser(newUser1); 因为其他一些post/问题等似乎暗示我得到一个IlligalStateException: no last call on a mock available 有人能指出我正确的方向吗? 提前谢谢了

开关的eclemma分支覆盖:错过了7个

我有这个交换机系统,我正在使用eclemma来测试分支机构的覆盖范围。 我们需要至少有80%的分支机构覆盖所有内容,所以我尽可能地尝试测试。 但是,eclemma告诉我这个交换机系统在分支覆盖范围方面没有经过全面测试。 pos = p.getCurrentPosition().substring(0, 1); switch (pos) { case “G”: goalkeepers++; break; case “D”: defense++; break; case “M”: midfield++; break; case “F”: offense++; break; case “S”: substitutes++; break; case “R”: reserves++; break; } 我使用简单的JUnit测试来解决这些问题。 仍然是eclemma将此标记为黄色并且说“错过了19个分支中的7个”。 我想说只有7种方法可以通过这个开关系统(6个个案+所有未定义)。 我尝试在堆栈溢出时搜索类似的问题。 他们中的一些人使用if / else进行完全覆盖的解决方案。 我不确定这是否是获得此保险的唯一方法。 任何人都可以解释所有这19个分支来自哪里以及我如何测试这些剩余的7个以获得100%的分支覆盖率?

春季交易管理测试

我想使用SpringContextTests测试我的Dao类。 在我的方法类中,我扩展了AbstractTransactionalJUnit4SpringContextTests ,以便我的测试类与JUnit4集成。 我还设置了配置,并在@After中的@Before和tearDown中清理初始化和数据库。 我的测试类很完美。 我的问题是,当我运行我的测试类并且数据库充满了数据时,原始数据没有回滚,我的数据库被清除。 在@Before方法中,我清除数据库并填充数据,认为我将能够回滚它,但事实并非如此。 任何人都可以找到一个可以在数据库中工作和回滚信息的示例。 ADDONS: 我的测试方法中的每个数据库操作都会被回滚。 但是在@Before方法中执行super.deleteFromTables(“person”)并没有回滚数据库中的所有先前数据。 Spring回滚所有CRUD操作,但在事务不回滚之前清理数据库。

mockito:如何取消模拟方法?

我有一个JUnit类,使用不同的方法来执行不同的测试。 我使用Mockito在真实实例上创建一个间谍,然后覆盖一些与我执行的实际测试无关的方法。 有没有办法,只是为了清理我以防万一我的测试后运行的其他测试也使用相同的实例,可能会执行一个模拟的方法,他们没有要求模拟,取消模拟方法? 说我有一个名为‘wareHouseSpy’的间谍对象 说我重写方法isSomethingMissing : doReturn(false).when(wareHouseSpy).isSomethingMissing() 什么是正确的方式来取消覆盖,并使间谍恢复正常,即使下一次调用isSomethingMissing来运行真正的方法? 就像是 doReturn(Mockito.RETURN_REAL_METHOD).when(wareHouseSpy).isSomethingSpy() 或者可能 Mockito.unmock(wareHouseSpy) 谁知道? 我在那个地方找不到任何东西 谢谢! 阿萨夫

数据库单元应忽略行的顺序

有没有办法让DB-Unit忽略比较行的顺序? 我的问题是,我不知道行将以何种顺序写入数据库,但DB-Unit强制我给出一个有序列表。 我想要dbunit做的是: 检查数据库和预期数据集中的行数是否匹配(已解决:开箱即用 检查每个行是否只在结果集中找到一次。 (未解决) 有任何想法吗?