gpt4 book ai didi

java - JUnit 测试方法未执行

转载 作者:行者123 更新时间:2023-11-30 07:07:57 25 4
gpt4 key购买 nike

我有一个 DateAdapter 类,其中通过 2 种方法 mrashall 和 unmarshall 将日期类型编码为字符串类型并将字符串数据类型解码为日期类型。所以我的测试方法没有运行。

public class DateAdapter extends XmlAdapter<String, LocalDate> {

private static final String FORMAT = "yyyy-MM-dd";

/**
* Java Type => XML
*
* @param date unmappable Java object (date)
* @return desired XML representation
* @throws Exception
*/
public String marshal(LocalDate date) throws Exception {
if (date == null) {
return null;
}

return date.toString(FORMAT);
}

/**
* String Type => Java Type
*
* @param dateString String needs to parse into java type
* @return desired Java Type representation
* @throws Exception
*/

@Override
public LocalDate unmarshal(String dateString) throws Exception {

if (StringUtils.isNotBlank(dateString)) {

DateTimeFormatter formatter = DateTimeFormat.forPattern(FORMAT);
DateTime dateTime = formatter.parseDateTime(dateString);

return dateTime.toLocalDate();
}
return null;
}

}

我正在使用 Junit、testNG、maven 2.2 和 eclipse Juno。右键单击测试用例不会执行测试方法。

public class DateAdapterTest {
/* Date adapter is a class to marshall date type into String and unmarshall
viseversa.
*/

DateAdapter dateAdapter;

private static final String DATE_FORMAT = "2014-01-01";
private static final LocalDate DATE = new LocalDate(2014, 01, 01);

@BeforeClass
public void setUp(){
dateAdapter = new DateAdapter();
}

/*
* @param Date Date type
* @return String String data type date
* @throw Exception
*/
@Test
public void testMarshal() throws Exception{

String dateString = dateAdapter.marshal(DATE) ;
assertEquals(DATE_FORMAT, dateString);
}

/*
* @param String String data type
* @return date LocalDate type date
* @throw Exception
*/
@Test
public void testUnmarshal() throws Exception{

LocalDate date = dateAdapter.unmarshal(DATE_FORMAT);
assertEquals(DATE , date);
}
}

JUnit 测试结果:

java.lang.NoSuchMethodError: org.junit.runner.Request.classWithoutSuiteMethod(Ljava/lang/Class;)Lorg/junit/runner/Request;
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestMethodReference.createRequest(JUnit4TestMethodReference.java:31)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestMethodReference.<init>(JUnit4TestMethodReference.java:25)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:54)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

最佳答案

首先,您必须决定使用哪个框架:JUnit 或 TestNG。一旦你决定检查你使用的是哪个 @Test 注释。我猜您使用 TestNG 中的 @Test 标记了测试,并尝试使用 JUnit 运行测试。

关于java - JUnit 测试方法未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com