我想在@Before中获取当前正在执行的测试方法,以便我可以获得应用于当前正在执行的方法的注释。publicclassTestCaseExample{@BeforepublicvoidsetUp(){//getcurrentmethodhere.}@Test@MyAnnotation("id")publicvoidsomeTest{//code}} 最佳答案 尝试TestName规则publicclassTestCaseExample{@RulepublicTestNametestName=newTestName();@Before
我有这门课classMyObject{privateLocalDateTimedate;publicLocalDateTimegetDate(){returnthis.date;}publicvoidmyMethod(){this.date=LocalDateTime.now();}}如何测试日期设置是否正确?我不能模拟now(),因为它是静态的,如果我在测试中使用LocalDateTime,两个日期将不相同。 最佳答案 Icannotmocknow()becauseitisstatic的确-但幸运的是,您不必这样做。相反,将“日期
我有这样一种情况,我们的单元测试需要很长时间才能为我们的业务域项目执行,因为它将数据库设置为已知状态,然后继续执行每个步骤。我知道这可以通过命令行上的“-Dmaven.test.skip=true”来完成,但希望仅在项目的NetBeans中配置它,如果有人可以阐明如何在IDE中进行配置,则全局是可以接受的。如何将maven2配置为仅在调用“测试”目标时执行测试?即使调用“测试”目标(fromthemavendocos),使用以下命令也会禁用测试。org.apache.maven.pluginsmaven-surefire-plugin2.6true 最佳答案
我刚刚应用了一段时间的UnitTest,今天我遇到了一些很奇怪的事情。考虑以下代码:TestObjectalo=null;assertalo!=null;//Pass!!!Assert.assertNotNull(alo);//Fail,asexpected.我四处搜索,发现assert是java内置的,而assertNotNull是JUnit支持的。但是我不明白为什么assert不提示空对象? 最佳答案 Hoang,我认为您对Java语言断言和JUnit断言有点混淆。Java中的assert关键字是在1.4中添加的,旨在允许验证类
我在AppEnginejavajdo中有一个跨组事务。它在本地开发应用引擎服务器上运行良好。但是,从单元测试中,我得到一个java.lang.IllegalArgumentException:transactionsonmultipleentitygroupsonlyallowedinHighReplicationapplications。是否可以使用LocalServiceTestHelper模拟高复制应用程序?我正在使用1.6.6。这是我的类(class),您可以按原样运行它以重现:publicclassDs2Test{privatefinalLocalServiceTestHel
我目前正在处理一些非常不稳定的代码。代码本身不是遗留的,但它使用的框架是遗留的并且非常糟糕。我想开始为一个类编写一些junit测试(为了改变!),但为了有效地做到这一点,我需要添加一些getter和setter。我需要setter以便我可以检查类中私有(private)变量的状态(这里进行的一种状态机设计模式)并且我需要getter来模拟某些方法中的私有(private)变量是什么。你们认为为了能够编写单元测试而将getter和setter添加到类中是坏的、好的还是可以接受的? 最佳答案 我会避免它。一般来说,您应该尽可能地构建事物
示例语句:if(conditionA&&conditionB&&conditionC&&conditionD){returntrue;}我可以为所有2^4组合编写单元测试,但如果添加更多条件,这很容易失控。我的单元测试策略应该是什么来涵盖像这样的语句的所有条件?有没有其他方法可以使代码更健壮? 最佳答案 我对这种情况的看法是1条快乐的道路和4个潜在的失败点。如果每个条件对于允许返回true都是关键的,那么这样写是合理的:单个快乐路径单元测试,逻辑返回true的唯一情况。和对可能导致检查失败的每个变量进行单元测试,断言单个变量有能力阻
我正在测试某个类。此类在内部实例化一个“GetMethod”对象,该对象传递给“HttpClient”对象,该对象被注入(inject)到测试类中。我正在模拟“HttpClient”类,但我也需要修改“GetMethod”类的一个方法的行为。我正在玩ArgumentCaptor,但我似乎无法在“when”调用中获取实例化对象。例子:HttpClientmockHttpClient=mock(HttpClient.class);ArgumentCaptorgetMethod=ArgumentCaptor.forClass(GetMethod.class);when(mockHttpCli
我正在尝试在JUnit中做一个简单的示例测试,测试两件事,然后进行拆卸。importorg.junit.*;publicclassTestFoobar{@TestpublicvoidtestOneThing(){//Codethattestsonething}@TestpublicvoidtestAnotherThing(){//Codethattestsanotherthing}@AfterClass@TestpublicvoidtearDownClass()throwsException{//Codeexecutedafterthelasttestmethod}}当我尝试运行它时,
我正在尝试模拟SpringRest的restTemplate.exchange方法。在同一测试中,我有多个调用,仅返回类型不同。这是我创建的模拟方法首先//OriginalmethodrestTemplate.exchange(UrlMap.SEARCH+'?'+searchDocsForm.toQueryParams(),HttpMethod.GET,null,newParameterizedTypeReference>(){})//Mockwhen(restTemplate.exchange(any(String.class),any(HttpMethod.class),any()