Questions tagged «junit»

流行的Java和Scala单元测试框架。最新版本的JUnit 5支持基于注释的丰富测试和参数化测试。考虑与Java或Scala标记结合使用以指示您的用例。

13
如何解决不必要的存根异常
我的代码如下 @RunWith(MockitoJUnitRunner.class) public class MyClass { private static final String code ="Test"; @Mock private MyClassDAO dao; @InjectMocks private MyClassService Service = new MyClassServiceImpl(); @Test public void testDoSearch() throws Exception { final String METHOD_NAME = logger.getName().concat(".testDoSearchEcRcfInspections()"); CriteriaDTO dto = new CriteriaDTO(); dto.setCode(code); inspectionService.searchEcRcfInspections(dto); List<SearchCriteriaDTO> summaryList = new ArrayList<SearchCriteriaDTO>(); inspectionsSummaryList.add(dto); when(dao.doSearch(dto)).thenReturn(inspectionsSummaryList);//got error …
100 java  junit  mockito 

30
Eclipse没有发现由NoClassDefFoundError为LauncherFactory使用JUnit 5进行的测试
问题 每当我运行项目JUnit测试(将JUnit 5与Java 9和Eclipse Oxygen 1.a结合使用)时,都会遇到Eclipse无法找到任何测试的问题。 说明 在运行配置下,eclipse甚至找不到用@Test注释的方法,而是只显示“ (所有方法) ”。下图希望可以更好地了解我的设置: 控制台输出: java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) at java.base/java.lang.Class.newInstance(Unknown Source) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:368) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:363) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:307) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:222) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206) Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) …
99 java  eclipse  junit  java-9  junit5 

5
JUnit 4测试套件
如何使用JUnit 4创建测试套件? 我看过的所有文档似乎都不适合我。而且,如果我使用Eclipse向导,它不会为我提供选择已创建的任何测试类的选项。
98 java  junit  test-suite 

3
Java JUnit:方法X对于类型Y是不明确的
我的一些测试工作正常。然后,我将其移至其他程序包,现在出现错误。这是代码: import static org.junit.Assert.*; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.jgrapht.Graphs; import org.jgrapht.WeightedGraph; import org.jgrapht.graph.DefaultWeightedEdge; import org.jgrapht.graph.SimpleWeightedGraph; import org.junit.*; @Test public void testEccentricity() { WeightedGraph<String, DefaultWeightedEdge> g = generateSimpleCaseGraph(); Map<String, Double> eccen = JGraphtUtilities.eccentricities(g); assertEquals(70, eccen.get("alpha")); assertEquals(80, eccen.get("l")); assertEquals(130, eccen.get("l-0")); assertEquals(100, eccen.get("l-1")); assertEquals(90, eccen.get("r")); assertEquals(120, eccen.get("r-0")); assertEquals(130, eccen.get("r-1")); } …

7
使用Android测试框架进行Android AsyncTask测试
我有一个非常简单的AsyncTask实现示例,使用Android JUnit框架对其进行测试时遇到了问题。 当我在常规应用程序中实例化并执行它时,它的工作正常。但是,当从任何Android Testing框架类(即AndroidTestCase,ActivityUnitTestCase,ActivityInstrumentationTestCase2等)执行该代码时,它的行为都会很奇怪: doInBackground()正确执行方法 然而,它没有任何调用它的通知方法(onPostExecute(),onProgressUpdate()等) -只是默默忽略它们没有表现出任何错误。 这是非常简单的AsyncTask示例: package kroz.andcookbook.threads.asynctask; import android.os.AsyncTask; import android.util.Log; import android.widget.ProgressBar; import android.widget.Toast; public class AsyncTaskDemo extends AsyncTask<Integer, Integer, String> { AsyncTaskDemoActivity _parentActivity; int _counter; int _maxCount; public AsyncTaskDemo(AsyncTaskDemoActivity asyncTaskDemoActivity) { _parentActivity = asyncTaskDemoActivity; } @Override protected void onPreExecute() { super.onPreExecute(); _parentActivity._progressBar.setVisibility(ProgressBar.VISIBLE); _parentActivity._progressBar.invalidate(); } @Override …
97 android  junit 

6
如何测试Android库项目
我正在基于Android Bitmap类(称为AndroindLib)编写一个Android Library Project,该项目仅包含实用工具类(无活动)。我尝试使用Android JUnit对其进行测试,但它一直抱怨找不到AnroidLib.apk 单元测试Android库项目的正确方法是什么?
97 android  junit  apk 

22
Eclipse-调试器不会在断点处停止
我正在尝试拍摄JUnit。在源代码中,我在两个位置设置了断点:1)在初始化静态成员的行中2)在一个测试用例的第一行中。 调试器在静态字段初始化行中停止。但这并不会在测试用例中停止。无论我在测试用例中的何处设置断点,调试器都不会在那里停下来。我肯定知道测试用例已执行,因为我可以看到添加的日志消息出现在日志中。 任何帮助将不胜感激。 我正在使用Eclipse Galileo和JUnit4启动器。

7
具有动态测试数量的JUnit测试
在我们的项目中,我有几个JUnit测试,例如从目录中获取每个文件并对其进行测试。如果我在中实现了一种testEveryFileInDirectory方法,则TestCase显示为仅一个可能失败或成功的测试。但是我对每个文件的结果都很感兴趣。如何编写一个TestCase/ TestSuite,使每个文件显示为单独的测试,例如在Eclipse的图形TestRunner中?(为每个文件编写显式测试方法不是一种选择。) 还将问题ParameterizedTest与Eclipse Testrunner中的名称进行比较。

3
使用命令行从JUnit类运行单个测试
我试图找到一种方法,使我可以仅使用命令行和Java从JUnit类运行单个测试。 我可以使用以下命令从该类运行整套测试: 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批注执行此操作的方法,但我希望不要手动修改测试类的源(尝试自动执行此操作)。我也确实看到Maven可以做到这一点,但是如果可能的话,我想避免依赖于Maven。 所以我想知道是否有任何方法可以做到这一点? 我要寻找的重点: 能够从JUnit测试类运行单个测试 命令行(使用JUnit) 避免修改测试源 避免使用其他工具

8
如何为Junit单元测试设置JVM参数?
我有一些Junit单元测试,需要大量的堆空间才能运行-即1G。(他们测试了一个Webstart应用程序的内存密集型功能,该功能仅在具有足够的堆空间的情况下运行,并且将在Win 7 64位计算机上内部运行-因此,重新设计测试是不切实际的建议。) 我正在Intellij IDEA中进行开发,因此我知道可以为测试类设置JVM参数(例如-Xmx1024M)。但是,这仅用于运行整个测试类-如果我想运行单个测试,则必须为该测试方法重新创建运行配置。 另外,这些设置是特定于IDE和特定于盒的-因此,如果我切换盒(在多台计算机上开发)或我的一位同事尝试运行测试,则不会转移这些设置。(此外,我的同事使用了其他IDE(例如Eclipse和NetBeans)。)FWIW,我们正在使用Mercurial进行源代码控制。 在构建周期中,我们使用Maven,所以我知道如何为此指定JVM参数。 所以:-我正在寻找一种指定将适用于整个测试类和各个测试方法的JVM参数的方法;-我想在任何计算机上的IDE之间共享这些规范(已从存储库中获取了代码)。

4
如何在Eclipse中轻松创建单元测试
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 我只想通过选择方法来轻松创建单元测试。eclipse中是否有工具可以做到这一点。它应该支持模板。我应该能够创建正面测试和负面测试。


6
如何进行JUnit测试等待?
我有一个JUnit测试,我想同步等待一段时间。我的JUnit测试如下所示: @Test public void testExipres(){ SomeCacheObject sco = new SomeCacheObject(); sco.putWithExipration("foo", 1000); //WAIT FOR 2 SECONDS assertNull(sco.getIfNotExipred("foo")); } 我尝试了Thread.currentThread()。wait(),但是它抛出了IllegalMonitorStateException(如预期的那样)。是否有一些技巧,还是我需要其他显示器?

2
如何在Kotlin中管理单元测试资源,例如启动/停止数据库连接或嵌入式Elasticsearch服务器?
在我的Kotlin JUnit测试中,我想启动/停止嵌入式服务器并在测试中使用它们。 我尝试@Before在测试类中的方法上使用JUnit批注,它可以正常工作,但这不是正确的行为,因为它运行每个测试用例,而不是运行一次。 因此,我想@BeforeClass在方法上使用批注,但是将其添加到方法中会导致错误,提示它必须在静态方法上。Kotlin似乎没有静态方法。然后,这同样适用于静态变量,因为我需要保留对嵌入式服务器的引用,以便在测试用例中使用。 那么,如何为所有测试用例一次创建一个嵌入式数据库? class MyTest { @Before fun setup() { // works in that it opens the database connection, but is wrong // since this is per test case instead of being shared for all } @BeforeClass fun setupClass() { // what I want to do instead, but …

4
您可以向AssertJ assertThat添加自定义消息吗?
我们有一个测试套件,主要使用带有Hamcrest匹配器的JUnit断言。我们的一个团队开始对AssertJ进行实验,并以其语法,灵活性和声明性给人留下了深刻的印象。JUnit提供的一项功能是我无法在AssertJ中找到与之等效的功能:添加自定义断言失败消息。 我们经常在比较不是为了人类可读性而制成的对象,这些对象将具有随机寻找的Id或UUID,并且无法通过包含的数据来判断它们应该是什么。不幸的是,对于我们的代码库来说,这是不可避免的情况,因为它实现的目的之一就是在其他服务之间映射数据而不必了解它是什么。 在JUnit中,该assertThat方法在String reason参数之前提供一个带有参数的版本Matcher<T>。这使得添加简短的调试字符串变得轻而易举,从而避免了对该问题的一些了解,例如,比较对人类意味着什么。 另一方面,AssertJ提供了十亿种不同的通用static assertThat方法,这些方法返回某种形式的接口Assert或其许多实现类之一。此接口不提供设置失败时包括的自定义消息的标准方法。 有什么方法可以从AssertJ API或其扩展之一中获得此功能,而不必为要向其添加消息的每个断言类型创建自定义断言类?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.