草庐IT

java - 如何在 Play Framework 2.x [Java] 中模拟 Controller /休息端点以进行单元测试

我们正在PlayFramework2.x上使用Java开发一个项目,并且有一些休息端点。我们还为他们准备了一些测试用例,如下所示:@TestpublicvoidtestLogout()throwsException{FakeRequestrequest=newFakeRequest("GET","/product/api/v1/logout");Resultresult=route(request);assertThat(status(result)).isEqualTo(OK);assertThat(contentType(result)).isEqualTo("applicatio

java - 使用单独的类加载器运行每个 JUnit 测试(不,真的)

我如何让JUnit为其执行的每个测试类使用单独的ClassLoader?我正在为设置大量静态变量的库编写JUnitTestRunner。我基本上想在每个测试类之间重置所有这些,而不需要知道它们是什么。我不想与框架的深入知识相结合,因为每当库内部发生变化时,我的TestRunner就会崩溃。在我继续之前,我想绝对清楚地表明我真的想要这样做。我无法控制图书馆。我没有不使用静态变量的选择。我不想使用反射或Powermock,因为我不想知道库中发生了什么。我不想使用Maven配置来fork测试过程,因为这样测试实用程序就会绑定(bind)到构建工具。我在StackOverflow上找到的所有其

JUnit单元测试常用方法知识整理

目录一、为什么要进行测试二、什么是单元测试三、IDEA下创建JUnit1.JUnit5是什么?2.自动创建JUnit四、JUnit用法1.基础测试方法2.注解3.使用断言4.假设5.显示名称6.禁用7.@Before和@After8.嵌套测试9.参数化测试10.重复测试11.设置时间限制12.测试异常五、总结一、为什么要进行测试        我们在写程序的时候,往往最难的部分不是代码的编写,而是之后的debug阶段,我们都经历过花大量时间去检查代码,最后发现只是简单的错误导致了bug。而在实际应用中,对于我们所开发的程序来讲,仅仅让它跑起来是远远不够的,程序在运行过程中可能会遇到各种问题,用

java - 如何从 gradle 运行 Junit TestSuites?

我正尝试在我的项目中从Ant构建迁移到Gradle。有一堆测试用例(junit.framework.TestCase的子类)和很少的测试套件(junit.framework.TestSuite的子类)。Gradle会自动选取要运行的所有测试用例(junit.framework.TestCase的子类),但不会选取套件(junit.framework.TestSuite的子类)。我可能可以通过调用ant.junit来运行它来解决这个问题。但是,我觉得应该有一种native的简单方法来强制gradle选择它们并运行。我在文档中找不到任何内容。我错过了什么吗? 最

java - Spring maven - 运行特定测试(通过注释或 maven 配置文件)

使用Springmaven上下文,我想基于maven配置文件运行特定测试。我想要一种标记测试组的简单方法。如果可能的话,我想使用注释。有哪些选项,如maven命令行参数、maven配置文件规范等。假设我有以下测试:例子://annotation("integration")publicclassGeopointFormatterTest{@TestpublicvoidtestIntegration1(){...}@TestpublicvoidtestIntegration2(){...}像@Profile(用于创建bean)和@ActiveProfile(用于选择创建bean的特定配置

java - 不存在的枚举值的单元测试?

首先是一些示例代码...枚举:publicenumTestEnum{YES,NO}部分代码:publicstaticbooleanWorkTheEnum(TestEnumtheEnum){switch(theEnum){caseYES:returntrue;caseNO:returnfalse;default://throwsanexceptionhere}}问题:TestEnum是我从不同开发人员的不同代码中导入的东西。所以它实际上可以改变。对于这种情况,我想要一个单元测试来实际检查该不存在的值。但我根本不知道如何使用Mockito和JUnit来做到这一点。这部分当然不行:@Test

java - 在@Before 方法中停止 JUnit 测试而不失败

这些是我的测试用例classMother{@BeforepublicvoidsetUp(){if(!this.getClass().isAnnotatedWith("Version20")){//pseudocode/**stopthistestwithoutfailing!*/}//furthersetup}}@Version20classChildextendsMother{@Testpublicvoidtest(){//runonlywhenVersion==20}}是否可以在不失败或assertTrue(false)的情况下在Mother的@Before方法中停止Child中的

java - 如何在不运行方法的情况下模拟方法调用和返回值?

考虑以下方法:publicbooleanisACertainValue(){if(context.getValueA()!=null&&context.getValueA().toBoolean()==true){if(context.getType()!=null&&context.getType()==ContextType.certainType){returntrue;}}returnfalse;}这段代码不是我写的,它丑得要命,太复杂了,但我必须使用它。现在我想测试一个依赖于调用此方法的方法。我认为我可以通过以下方式处理这个问题:Mockito.when(spy.isACer

java - 是否真的有必要在 JUnit 拆卸方法中使对象无效?

这个问题在这里已经有了答案:JUnit-shouldIassignnulltoresourcesintearDownthatwereinstantiatedinsetUp?(3个答案)关闭7年前。我对answer很感兴趣到一个类似的问题。我认为这是不正确的。所以我创建了一些测试代码。我的问题是,这段代码是否证明/反驳/不确定在拆卸方法中取消成员变量有用的假设?我用JUnit4.8.1测试了它。JUnit为4个测试中的每一个都创建了一个新的测试类实例。每个实例都包含一个Objectobj。此obj也作为静态WeakHashMap的键插入。如果并且当JUnit释放它对测试实例的引用时,关联

Java:当该字段未公开时,如何模拟该字段的方法?

我正在使用Java6、JUnit4.8.1并编写控制台应用程序。我的应用程序有一个未公开的成员字段......publicclassMyApp{...privateOpportunitiesServicem_oppsSvc;privatevoidinitServices(){…m_oppsSvc=newOpportunitiesServiceImpl(…);}...}我想模拟一种行为,以便无论何时调用我的服务中的一个方法(例如m_oppsSvc.getResults()),总是返回相同的结果。我怎么做?该字段没有设置方法。我目前正在使用Mockito1.8.4。是否可以使用Mockit