Tag: junit

如何使用JUnittestingJava中的抽象类?

我是使用JUnit进行Javatesting的新手。 我必须使用Java,我想使用unit testing。 我的问题是:我有一个抽象的类与一些抽象的方法。 但是有些方法不是抽象的。 我如何用JUnittesting这个类? 示例代码(非常简单): abstract class Car { public Car(int speed, int fuel) { this.speed = speed; this.fuel = fuel; } private int speed; private int fuel; abstract void drive(); public int getSpeed() { return this.speed; } public int getFuel() { return this.fuel; } } 我想testinggetSpeed()和getFuel()函数。 对这个问题类似的问题在这里 ,但它不使用JUnit。 在JUnit FAQ部分,我find了这个链接 ,但我不明白作者想要用这个例子说什么。 这一行代码是什么意思? […]

JUnit:如何模拟System.intesting?

我有一个Java命令行程序。 我想创buildJUnittesting用例来模拟System.in 。 因为当我的程序运行时,它将进入while循环,并等待来自用户的input。 我如何在JUnit中模拟? 谢谢

如何用Springtesting一个模拟的JNDI数据源?

我对Spring相当陌生,想知道如何创build使用模拟数据源的JUnittesting,以及如何使用JNDI上下文? 目前我的应用程序使用来自tomcat的JNDI上下文来检索连接,并通过该连接从数据库中检索数据。 所以我想我需要模拟JNDI调用和数据检索。 任何好的方法来解决这个问题的方法是非常好的! 非常感谢!

如何做一个logging器中的消息断言JUnit

我有一些testing代码调用Javalogging器来报告其状态。 在JUnittesting代码中,我想validation是否在此logging器中创build了正确的日志条目。 大致如下: methodUnderTest(bool x){ if(x) logger.info("x happened") } @Test tester(){ // perhaps setup a logger first. methodUnderTest(true); assertXXXXXX(loggedLevel(),Level.INFO); } 我想这可以用一个特别改编的logging器(或处理程序,或格式化程序)来完成,但我宁愿重新使用已经存在的解决scheme。 (说实话,我不清楚如何从logging器获取logRecord,但假设这是可能的。)

简单的方法一遍又一遍地运行相同的junittesting?

就像标题所说,我正在寻找一些简单的方法来使用Eclipse自动运行几次JUnit 4.xtesting。 一个例子是连续运行相同的testing10次并报告结果。 我们已经有了这样一个复杂的方法,但是我正在寻找一个简单的方法来做到这一点,这样我就可以确定我一直试图解决的片状testing保持不变。 一个理想的解决scheme将是我不知道的Eclipse插件/设置/function。

如何testing没有抛出exception?

我知道有一种方法可以做到: @Test public void foo(){ try{ //execute code that you expect not to throw Exceptions. } catch(Exception e){ fail("Should not have thrown any exception"); } } 有没有更干净的方式做到这一点。 (可能使用Junit的@Rule ?)

@Before,@BeforeClass,@BeforeEach和@BeforeAll之间的区别

主要区别是什么? @Before和@BeforeClass 并在JUnit 5 @BeforeEach和@BeforeAll @After和@AfterClass 根据JUnit Api @Before在以下情况下使用: 编写testing时,通常会发现多个testing需要在运行之前创build类似的对象。 而@BeforeClass可以用来build立数据库连接。 但不能@Before做同样的?

JUnit混淆:使用'扩展TestCase'或'@Test'?

我发现JUnit的正确使用(或至less文档)非常混乱。 这个问题既可以作为未来的参考,也可以作为一个真正的问题。 如果我理解正确,创build和运行JUnittesting主要有两种方法: 方法A(JUnit 3样式):创build一个扩展TestCase的类,并用test这个词开始testing方法。 在JUnit Test(在Eclipse中)运行类时,所有以word test开头的方法都会自动运行。 import junit.framework.TestCase; public class DummyTestA extends TestCase { public void testSum() { int a = 5; int b = 10; int result = a + b; assertEquals(15, result); } } 方法B(JUnit 4样式):创build一个“普通”类,并在该方法前加上一个@Test注解。 请注意,您不必使用单词test来启动该方法。 import org.junit.*; import static org.junit.Assert.*; public class DummyTestB { @Test public void Sum() { […]

分组JUnittesting

有没有办法在JUnit中对testing进行分组,以便我只能运行一些组? 还是有可能注释一些testing,然后全局禁用它们? 我正在使用JUnit 4 ,我不能使用TestNG。 编辑: @RunWith和@SuiteClasses伟大的作品。 但是有没有可能像这样只在testing类中进行一些testing呢? 还是我必须注释整个testing类?

使用命令行从JUnit类运行单个testing

我正试图find一种方法,使我能够使用命令行和java从JUnit类运行单个testing。 我可以使用下面的命令来运行整套的testing: java -cp …. org.junit.runner.JUnitCore org.package.classname 我真正想做的是这样的: java -cp …. org.junit.runner.JUnitCore org.package.classname.method 要么: java -cp …. org.junit.runner.JUnitCore org.package.classname#method 我注意到可能有方法使用JUnit注释来做到这一点,但我宁愿不要手动修改我的testing类的来源(试图自动执行此操作)。 我也看到,Maven可能有办法做到这一点,但如果可能的话,我想避免取决于Maven。 所以我想知道是否有办法做到这一点? 我正在寻找的关键点: 能够从JUnittesting类运行单个testing 命令行(使用JUnit) 避免修改testing源 避免使用其他工具