Tag: junit

Eclipse中没有find“JUnittesting”

所以我是JUnit的新手,我们必须使用它来完成作业。 我们的教授给了我们一个有一个testing类的项目BallTest.java 。 当我右键单击>运行方式> JUnittesting,我得到一个popup错误,说'没有JUnittesting发现'。 我知道这个问题已经在这里得到解答( testing运行JUnit 4没有发现testing ),但是closureseclipse,重新启动,清理和构build似乎并不奏效。 下面是我的运行configuration,构buildpath和我正在testing的类的屏幕截图。 BallTest.java import static org.junit.Assert.*; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class BallTest { Ball ball; /** * @throws java.lang.Exception */ @Before public void setUp() throws Exception { System.out.println("Setting up …"); Point2D p = new Point2D(0,0); ball […]

junit:没有testing发现

我inheritance了一个Java项目,是Java开发新手。 对于我来说,让自己感觉舒适的代码就是围绕它编写一些testing。 我正在使用IntelliJ编写我的代码。 我现有的项目有这样的文件夹结构: /myProject /src /main /java /com.lexcorp /core /email /providers emailProvider.java 我创build了一个新的项目,将举行这个项目的testing。 我希望这个项目能同时进行unit testing和集成testing。 目前,我的新项目有这样的结构: /myProjectTests /src /main /java /com.lexcorp.core.email.providers emailProviderTest.java emailProviderTest.java文件如下所示: package com.lexcorp.core.email.providers; import junit.framework.TestCase; import org.junit.Test; public class EmailProviderTest extends TestCase { private final String username = "[testAccount]"; private final String password = "[testPassword]"; @Test public void thisAlwaysPasses() { assertTrue(true); } […]

用JUnittesting一个EJB

我应该如何testing一个获得EntityManager实例注入的EJB 3.1? 一个可能的EJB: @Stateless @LocalBean public class CommentService { @PersistenceContext private EntityManager em; public List<Comment> findAll() { TypedQuery<Comment> query = em.createNamedQuery( Comment.FIND_ALL, Comment.class ); return query.getResultList(); } } 一个可能的testing: @Test public void testFindAll() { List<Comment> all = service.findAll(); Assert.assertEquals(8, all.size()); } 我只使用GlassFish 3.1和Eclipse Indigo for Java EE开发人员。 我已经尝试过这样的事情: @Before public void setUp() throws Exception { […]

组织JUnittesting项目

你认为在项目中组织JUnittesting的最佳实践是什么?为什么? 例如,你是否把你的testing放在他们testing的类旁边? 你把它们放在一个单独的,但并行的包装结构? 你完全使用不同的组织战略吗?

在JUnit中将unit testing标记为预期的失败

我如何在JUnit 4中将testing标记为预期的失败? 在这种情况下,我想继续运行这个testing,直到上游有补丁。 忽略这个testing有点过分,因为我可能会忘记它。 我可以添加一个@expected注解,并捕获由assertThat抛出的exception,但这似乎也是在于预期的行为。 以下是我目前的testing: @Test public void unmarshalledDocumentHasExpectedValue() { doc = unmarshaller.unmarshal(getResourceAsStream("mydoc.xml")); final ST title = doc.getTitle(); assertThat(doc.getTitle().toStringContent(), equalTo("Expected")); } 这个断言应该成功,但是由于上游的错误,它不会。 然而,那个testing是正确的; 它应该成功。 几乎所有我find的替代品都是误导性的。 现在我认为@Ignore("This test should pass once fixed upstream")是我最好的select,但我仍然要记得回到它。 我更喜欢testing运行。 在Python中,我可以使用expectedFailure装饰器: class ExpectedFailureTestCase(unittest.TestCase): @unittest.expectedFailure def test_fail(self): self.assertEqual(1, 0, "broken") 在C ++中使用Qt的QTestLib ,你可以使用QEXPECT_FAIL : QEXPECT_FAIL("", "Will be fixed next version", Continue); QCOMPARE(i, […]

JUnit是编写性能testing的正确工具吗?

在上个星期,我创build了两个class级,我的团队对他们的performance表示了一些担忧。 为了评估我的代码,我编写了一些简单的JUnittesting,通过构build丰富的testing数据集来执行这些类,然后通过相关的方法提供数据以进行数千次迭代。 我logging了每次迭代的运行时间,然后使用循环和System.nanoTime()注销高,低和平均时间。 最后,我有JUnit断言高和平均时间在可接受的范围内。 这个testing方法给了我的团队对这个代码的信心。 JUnit是以这种方式testing性能的正确工具吗? 是否有更好的工具来testing单元(方法和类)的性能?

如何在Java应用程序中testing私有构造函数?

如果一个类包含一堆静态方法,为了确保没有人错误地初始化这个类的一个实例,我做了一个私有的构造函数: private Utils() { } 现在..鉴于构造函数不能被看到,怎么能testing呢? 这可以testing覆盖呢?

使用Hamcrest 1.3和JUnit 4.11的NoSuchMethodError

另一个JUnit&Hamcrest组合的NoSuchMethodError实例。 出错代码: assertThat(dirReader.document(0).getFields(), hasItem( new FeatureMatcher<IndexableField, String>(equalTo("Patisnummer"), "Field key", "Field key") { @Override protected String featureValueOf(IndexableField actual) { return actual.name(); } } )); IndexerTest.java中的注释行152-157(commit ac72ce ) 导致NoSuchMethodError(请参阅http://db.tt/qkkkTE78获取完整的输出): java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V at org.hamcrest.FeatureMatcher.matchesSafely(FeatureMatcher.java:43) at org.hamcrest.TypeSafeDiagnosingMatcher.matches(TypeSafeDiagnosingMatcher.java:55) at org.hamcrest.core.IsCollectionContaining.matchesSafely(IsCollectionContaining.java:25) at org.hamcrest.core.IsCollectionContaining.matchesSafely(IsCollectionContaining.java:14) at org.hamcrest.TypeSafeDiagnosingMatcher.matches(TypeSafeDiagnosingMatcher.java:55) at org.junit.Assert.assertThat(Assert.java:770) at org.junit.Assert.assertThat(Assert.java:736) at indexer.IndexerTest.testIndexContainsField(IndexerTest.java:152) 设置: JUnit 4.11 Hamcrest 1.3 使用Maven的surefire插件(版本2.14),它使用了JUnitCoreProvider Java 7(OpenJDK) 看到pom (commit […]

有没有办法在内存中运行MySQL的JUnittesting用例?

我只是试图添加访问MySQL数据库的服务的testing用例,我想重新创build整个模式(对于某些场景,也只是使用MySQL转储文件和每个testing用例所需的数据)。 我环顾四周,发现有些人使用SQLite / H2和其他人来做到这一点,但是我只是在徘徊,如果有任何方式在内存中运行MySQL,所以我不需要担心任何特定于MySQL我可能会使用我们的服务方言。

JUnit 3和JUnit 4的区别

有人可以用几句话来描述JUnit 3和4之间的主要区别是什么?