Tag: junit

Eclipse / Maven:运行时未编译的JUnittesting

我正在使用Maven和Eclipse(m2eclipse插件)的项目。 我遇到了JUnittesting的问题: 有时,在Eclipse中运行它们时,它们不会被编译,而是使用旧的类文件。 当我删除类文件时,我在Eclipse中得到了ClassNotFoundExceptions 。 然后我必须通过使用mvn test-compile或其他目标来手动重新编译它们。 我也注意到,testing的类文件有时被放到classes子目录中,而不是test-classes 。 我真的无法弄清楚什么是错的。 JUnit的java文件位于src/main/java ,并正确命名( *Test.java )。 我是否必须通过Maven来编译和运行它们? 为什么Eclipse没有编译这些文件,我想运行它们? (有趣的是, 有时它确实有时候一切正常。)

Hamcrest比较collections

我试图比较2个列表: assertThat(actual.getList(), is(Matchers.containsInAnyOrder(expectedList))); 但是想法 java: no suitable method found for assertThat(java.util.List<Agent>,org.hamcrest.Matcher<java.lang.Iterable<? extends model.Agents>>) method org.junit.Assert.<T>assertThat(T,org.hamcrest.Matcher<T>) is not applicable (no instance(s) of type variable(s) T exist so that argument type org.hamcrest.Matcher<java.lang.Iterable<? extends model.Agents>> conforms to formal parameter type org.hamcrest.Matcher<T>) method org.junit.Assert.<T>assertThat(java.lang.String,T,org.hamcrest.Matcher<T>) is not applicable (cannot instantiate from arguments because actual and formal argument lists differ in […]

Android Studio导入现有unit testing“无法find检测信息”

所以我正在尝试我们的Android Studio并testing一个在eclipse中工作的项目。 我得到了一切编译和应用程序将推出很好,但我不能让我的unit testing和工作。 我最终通过添加我的应用程序li​​b文件夹作为依赖项来编译他们,但我不认为我的运行configuration是正确的,因为每当我运行我的testing时,我得到这个错误 Installing <packagename> DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/<packagename>" pkg: /data/local/tmp/<packagename> Success Running tests Test running started Test running failed: Unable to find instrumentation info for: ComponentInfo{<packagename>/android.test.InstrumentationTestRunner} Empty test suite. 编辑:对于所有新来的人来说,自从我最初发布这个问题以来,Android Studio的状态已经发生了很大的变化,但是许多有帮助的人仍然继续为这个错误发布他们特定的解决scheme。 我build议通过激活sorting,并检查出最新的答案。

java.lang.NoClassDefFoundError在junit中

我在我的junittesting代码中得到这个错误在java中。 我在网上查了一下,它说我需要在类path中添加junit.jar。 在Eclipse中,我已经将它添加到“项目属性”窗口的类path中,但仍然出现初始化错误。 我该怎么办..? 这是错误的完整跟踪: java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:32) […]

上课之前的Junit(非静态)

有没有最好的做法来让Junit在testing文件中执行一次函数,而且它也不应该是静态的。 像非静态函数的@BeforeClass ? 这是一个丑陋的解决scheme: @Before void init(){ if (init.get() == false){ init.set(true); // do once block } } 以及这是我不想做的事情,我正在寻找一个集成的junit解决scheme。

注释使私有方法只对testing类公开

谁有这个共同需求的解决scheme。 我在申请中有一堂课。 有些方法是公开的,因为它们是api的一部分,有些是私有的,因为它们是内部使用的,使内部stream动更可读 现在,我想写一个unit testing,或者更像是一个集成testing,它将位于不同的包中,这将允许调用这个方法,但是,我希望这个方法的正常调用将不被允许如果您尝试从应用程序本身的类中调用它 所以,我在想这样的事情 public class MyClass { public void somePublicMethod() { …. } @PublicForTests private void somePrivateMethod() { …. } } 上面的注解将私有方法标记为“public for test”,这意味着编译和运行时将被允许用于任何在test … package下的类,而编译和/或运行时将失败的任何类不在testing包下。 有什么想法吗? 有没有像这样的注释? 有一个更好的方法吗? 看起来你写的unit testing越多,为了破解你的封装就越多。

src / androidtest和src / test文件夹有什么区别?

在Android Studio中默认的项目中有两个testing文件夹。 首先是src/androidTest 。 此文件夹已经存在于以前版本的Android Studio中。 尽pipe如此,有一段时间以来,默认的src/test和build.gradle新build依赖testCompile 'junit: junit: 4.12'有一个新的testing文件夹。 我的问题是: 我使用哪个文件夹进行testing以及两者之间的区别?

如何用Scala做一个实例检查(Test)

我试图将ScalaTest整合到我的Java项目中,用ScalaTestsreplace所有的JUnittesting。 有一次,我想检查Guice的注射器是否注入了正确的types。 在Java中,我有这样的testing: public class InjectorBehaviour { @Test public void shouldInjectCorrectTypes() { Injector injector = Guice.createInjector(new ModuleImpl()); House house = injector.getInstance(House.class); assertTrue(house.door() instanceof WoodenDoor); assertTrue(house.window() instanceof BambooWindow); assertTrue(house.roof() instanceof SlateRoof); } } 但是我在ScalaTest中也遇到了一个问题: class InjectorSpec extends Spec { describe("An injector") { it("should inject the correct types") { val injector = Guice.createInjector(new ModuleImpl) val house = […]

多次使用不同的数据运行相同的JUnittesting用例

在继续下一个testing用例之前,有什么方法可以告诉JUnit连续不断地用不同的数据运行一个特定的testing用例吗?

在jUnit中有多个RunWith语句

我写unit testing,并希望使用JUnitParamsRunner和MockitoJUnitRunner一个testing类。 不幸的是,以下不起作用: @RunWith(MockitoJUnitRunner.class) @RunWith(JUnitParamsRunner.class) public class DatabaseModelTest { // some tests } 有没有办法在一个testing课中同时使用Mockito和JUnitParams?