Tag: unit testing

比较两个忽略元素顺序的XML字符串

支持我有两个xml字符串 a b b a 如何编写一个比较这两个字符串并忽略元素顺序的测试? 我希望测试尽可能短,没有10行XML解析等的地方。我正在寻找一个简单的断言或smt类似。 我有这个(不起作用) Diff diff = XMLUnit.compareXML(expectedString, actualString); XMLAssert.assertXMLEqual(“meh”, diff, true);

断言在JUnit5中断言多个断言

是否有任何理由将多个断言分组: public void shouldTellIfPrime(){ Assertions.assertAll( () -> assertTrue(isPrime(2)), () -> assertFalse(isPrime(4)) ); } 而不是这样做: public void shouldTellIfPrime(){ Assertions.assertTrue(isPrime(2)); Assertions.assertFalse(isPrime(4)); }

IntelliJ – 无法启动:0通过,1未启动

刚刚第一次玩IntelliJ IDEA社区版,我第一次使用它,所以如果我错过了什么,请原谅。 我运行了一系列unit testing,但是,当在IntelliJ中运行它们时(标准设置开箱即用),我间歇性地在控制台中出现以下错误: 03:14:17无法启动:58通过,1未启动 我在网上搜索但无济于事。 如果我只运行失败的测试,它可能会或可能不会打印出类似的错误: 03:19:54无法启动:0通过,1未启动 如果我继续尝试,最终它会起作用并告诉我所有测试都已通过。 图像不是错误的感叹号,它是一个不同的错误图标( ),我不承认。 “事件日志”窗口中的错误显示为红色文本。 它似乎总是只发生一次测试,对于任何给定的测试集,它总是相同的测试。 IE在另一个项目中,同样的问题也会出现,但对于不同的测试(但在每个项目或一组测试中它总是相同的)。 还有一点需要注意的是,这只发生在调试时而不是在运行时,所以它可能与连接调试器有关吗? 这一切都与Eclipse完美搭配。 可能导致这种情况的任何想法? 非常感谢!

assertEquals(Double,Double)和assertEquals(double,double,delta)之间的Junit差异

我有一个junit测试断言两个Double对象具有以下内容: Assert.assertEquals(Double expected, Double result); 这很好,然后我决定将其更改为使用原始的double而不是最近被弃用,除非你还提供了delta。 所以我想知道在这个assertEquals中使用Double对象或原始类型有什么区别? 为什么在没有delta的情况下使用对象,但是不推荐使用没有delta的基元? Java是否在后台运行已经考虑了默认delta值的东西? 谢谢。

JUnit测试预期exception的正确方法

大家好,我想知道这种测试我的exception是否正常,我有这个例外我需要抛出第二个测试注释,我接收结果是一个红色邪恶的条,一个成功和一个失败,你可以猜到失败是我关心的,我有失败(); 但原因是因为我读到了测试exception的方法,现在我很困惑。 此外,我不得不说im willin得到绿色条,因为我期待exception,但我不知道失败是否是正确的方式来看到预期的exception的答案。 如果您有任何建议,我将不胜感激 @Before public void setUp() throws Exception { LogPack.logPacConfig(Constants.LOGGING_FILE); gtfri = “+RESP:GTFRI,380502,869606020101881,INCOFER-gv65,,10,1,1,0.0,0,888.1,-84.194560,9.955602,20170220074514,,,,,,0.0,,,,100,210100,,,,20170220074517,40A2$”; weirdProtocol = “+RESP:GRI,380502,869606020101881,INCOFER-gv65,,10,1,1,0.0,0,888.1,-84.194560,9.955602,20170220074514,,,,,,0.0,,,,100,210100,,,,20170220074517,40A2$”; factory = new LocomotiveFactory(); } @Test public void GTFRICreationTester_shouldPass() throws TramaConProtolocoloDesconocido { assertTrue(factory.createLocomotive(gtfri, false, new Date()) instanceof LocomotiveGTFRI); } @Test(expected = TramaConProtolocoloDesconocido.class) public void GTFRICreationTester_shouldFail() { try { factory.createLocomotive(weirdProtocol, false, new Date()); fail(“Expected an TramaConProtolocoloDesconocido”); } […]

Gradle:如何排除一些测试?

我的src/test/文件夹包括单元和function测试。 function测试的类路径使用单词cucumber ,而unit testing则没有。 那么,我怎样才能运行unit testing呢? 非常感谢你。 PS :我知道使用“包含”逻辑来选择测试很容易。 例如,要仅在我的情况下运行function测试,我可以简单地使用它 ./gradlew test -Dtest.single=cucumber/**/ 但是,我不知道如何以简单的方式排除测试。 顺便说一下,我正在使用gradle 1.11。

如何使用dbUnit将数据库恢复到初始状态?

我是自动化测试和dbUnit的新手。 所以我很感激你的建议。 我将创建一个测试套件,它将按以下方式运行: 创建一个内存H2数据库 运行DDL脚本来创建表 运行dbUnit以插入将由所有测试使用的初始数据(让我们称之为STATE0 )。 运行测试 到那里它对我来说很好看,但我不明白的是,如何在测试运行后将数据库恢复到STATE0并更改数据? 我可以用dbUnit做到吗? 还是别的什么? 我应该在每次测试之前重新创建数据库吗? 简单的不在测试中提交事务不适合我,因为测试最终会运行多个事务,可能不止一个数据库连接。

第二个活动上的单击按钮在视图上执行“单击”或“滚动到”时出错

单击Espresso测试中的按钮会出现问题。 假设我有两个活动“Activity1”和“Activity2”。 单击Activity1中的对话框确定按钮启动Activity2,其中无法单击Activity2中的按钮。 // The current activity in testing // ….. onView(withText(R.string.dialog_btn_ok)).perform(click()); // go to the second activity // The button on the second activity onView(withId(R.id.btnMP)).check(matches(isDisplayed())); // this is ok onView(withId(R.id.btnMP)).perform(click()); // got error here android.support.test.espresso.PerformException:在视图’上执行’单击’时出错,ID为:………. 引发者:java.lang.RuntimeException:将不执行操作,因为目标视图与以下一个或多个约束不匹配:至少90%的视图区域显示给用户。 目标视图:“按钮{id = 2131296390,res-name = btnMP,visibility = VISIBLE,width = 652,height = 160,has-focus = false,has-focusable = true,has-window-focus = true,is- clickable […]

在Eclipse中的单独JVM中运行每个JUnit测试?

我有一个项目,在大约200个测试类中有近500个单独的测试。 其中一些测试在完成后没有很好地拆除自己的状态,而在Eclipse中,这导致一些测试失败。 当从命令行通过Ant运行测试套件时,测试全部通过。 我可以在Eclipse中以某种方式启用“测试隔离”吗? 我不介意是否需要更长时间才能运行。 长期来看,我会清理行为不端的测试,但在短期内我想让测试工作。

如何在Java Spring中模拟RestTemplate?

public class ServiceTest { @Mock RestTemplate restTemplate = new RestTemplate(); @InjectMocks Service service = new Service(); ResponseEntity responseEntity = mock(ResponseEntity.class); @Test public void test() throws Exception { Mockito.when(restTemplate.getForEntity( Mockito.anyString(), Matchers.any(Class.class) )) .thenReturn(responseEntity); boolean res = service.isEnabled(“something”); Assert.assertEquals(res, false); } 我试图测试一个包含restclient的服务的简单测试。 它看起来我没有成功模拟RestTemplate 。 它看起来像代码获得真实数据而不是模拟数据。 任何人都可以帮助我。 服务本身看起来像这样: public class Service{ public boolean isEnabled(String xxx) { RestTemplate restTemplate […]