Tag: junit

谷歌应用引擎的gradleunit testing在哪里期待persistence.xml?

我已经使用Datanucleus JPA提供程序的Maven原型项目创build了一个Google应用程序引擎项目,基本上遵循Google应用程序引擎文档。 运行maven目标“testing”时一切正常。 现在我不得不将这个项目整合到Android studio中,并且希望将构build脚本迁移到gradle。 我把所有的依赖关系从pom.xml复制到build.gradle ,并且项目build.gradle 。 但是,所有访问Google数据存储区的testing都会失败。 在testing输出期间,我收到以下消息: 警告:在当前线程的CLASSPATH中找不到META-INF / persistence.xml文件! 我检查了build期间创build的build文件夹,没有文件夹包含src/main/webapp/WEB-INF/classes/META-INF中的persistence.xml 然而,使用maven,它正确地放在target/myapp-1.0-SNAPSHOT/WEB-INF/classes/META-INF文件夹中。 我曾尝试使用gradle copy任务将persistence.xml复制到不同的位置,比如build/classes/META-INF build/classes/webapp/WEB-INF/classes/META-INF等,但是没有任何工作。

我如何指定JUnittesting依赖关系?

我们的工具包有超过15000个JUnittesting,如果其他一些testing失败,很多testing都会失败。 例如,如果方法X.foo()使用Y.bar()中的function并且YTest.testBar()失败,那么XTest.testFoo()也会失败。 显然,XTest.testFoo()也可能因为X.foo()特有的问题而失败。 虽然这很好,我仍然希望两个testing都运行,但如果用XTest.testFoo()指向YTest.testBar()来注释一个testing依赖项,那将会很好。 这样,可以立即看到X.foo()使用的function也失败了,什么不是。 JUnit或其他地方有这样的注释吗? 就像是: public XTest { @Test @DependsOn(method=org.example.tests.YTest#testBar) public void testFoo() { // Assert.something(); } }

我应该把我的JUnittesting放在哪里?

我有两个关于组织unit testing的问题。 我是否必须将testing放在与testing类相同的包中,还是可以在不同的包中组织testing? 例如,如果我有有效性和其他testing,将它们分成不同的包是否正确,即使它们是同一类? 模拟和存根类怎么样? 我应该将它们与仅包含testing的包分开,还是将它们放在一起?

JUnit的Eclipse插件?

我觉得不能够find这个愚蠢,但Eclipse的JUnit插件在哪里? 我在我的buildpath中包含了最新的.jar ,但是我仍然没有select创build一个新的testing用例,运行带有绿色/红色条的testing用例等。我需要插件,对吧? 编辑:我正在使用“PHP开发人员的Eclipse”。 所以也许这不会自动包含JUnit。 我是否必须再次下载Eclipse,或者我可以以某种方式获得该function?

Mockito在例外Junit 4.10之后进行validation

我正在testing一个预期的例外的方法。 我还需要validation在引发exception之后调用了一些清理代码(在模拟对象上),但看起来validation被忽略。 这是代码。 我正在使用Junit ExpectedException Rule来validation预期的exception。 @Rule public ExpectedException expectedEx = ExpectedException.none(); @Test public void testExpectedException() { MockedObject mockObj = mock(MockedObj.class); MySubject subject = new MySubject(mockedObj); expectedEx.expect(MyException.class); expectedEx.expectMessage("My exception message."); subject.someMethodThrowingException(); verify(mockObj). someCleanup(eq(…)); } 似乎verify完全被忽略。 不pipe我用什么方法进行verify ,我的testing都通过了,这不是我想要的。 任何想法,为什么这种事情发生?

如何在没有equals方法的情况下在两个类上声明相等性?

说我有一个没有equals()方法的类,没有源代码。 我想在这个类的两个实例上声明平等。 我可以做多个断言: assertEquals(obj1.getFieldA(), obj2.getFieldA()); assertEquals(obj1.getFieldB(), obj2.getFieldB()); assertEquals(obj1.getFieldC(), obj2.getFieldC()); … 我不喜欢这个解决scheme,因为如果一个早期的断言失败,我没有得到完整的等式图片。 我可以手动比较我自己并跟踪结果: String errorStr = ""; if(!obj1.getFieldA().equals(obj2.getFieldA())) { errorStr += "expected: " + obj1.getFieldA() + ", actual: " + obj2.getFieldA() + "\n"; } if(!obj1.getFieldB().equals(obj2.getFieldB())) { errorStr += "expected: " + obj1.getFieldB() + ", actual: " + obj2.getFieldB() + "\n"; } … assertEquals("", errorStr); 这给了我完全平等的图像,但是笨重(我甚至没有考虑到可能的空值问题)。 第三个选项是使用比较器,但是compareTo()不会告诉我哪个字段失败了。 […]

如何禁用TestNG中的整个unit testing?

这是我在JUnit中可以做的事情: import org.junit.*; @Ignore public class FooTest { // } 整个class级都会被忽略。 我如何在TestNG中做同样的事情?

不包括在IntellIJ中运行的testing

在IntelliJ IDEA Ultimate中排除一些testing是否是无法select的? 我想在IntelliJ中运行unit testing,但不包括集成testing。 我用*IT.java命名集成testing,所以Maven故障安全插件可以在unit testing中独立运行它们。

如何使用JUnittesting依赖于环境variables的代码?

我有一段使用环境variables的Java代码,代码的行为取决于这个variables的值。 我想用不同的环境variables值来testing这段代码。 我如何在JUnit中做到这一点? 我已经看到了一些通常在Java中设置环境variables的方法 ,但我更关心它的unit testing方面,特别是考虑到testing不应该相互干扰。

JUnit4 fail()在这里,但是pass()在哪里?

JUnit4库中有一个fail()方法。 我喜欢它,但遇到缺乏pass()方法,这是不存在于图书馆。 为什么这样? 我发现,我可以使用assertTrue(true)来代替,但仍然看起来不合逻辑。 @Test public void testSetterForeignWord(){ try { card.setForeignWord(""); fail(); } catch (IncorrectArgumentForSetter ex){ } // assertTrue(true); }