Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
谁能解释为什么以下JUnit测试将失败并显示ClassCastException:无法在下面的Assert语句中将消息强制转换为java.lang.String吗?
然后测试类具有:
我认为您未编译,并且正在运行旧版本(也许)。
结果是:
org.junit.ComparisonFailure:预期:
但是是:
如预期的那样。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
谁能解释为什么以下JUnit测试将失败并显示ClassCastException:无法在下面的Assert语句中将消息强制转换为java.lang.String吗?
public enum Message{
NULL_REQUEST("Null Request"),
INVALID_NUMBER_OF_REQUESTS("Invalid number of requests");
Message(String msg){
this.msg = msg;
}
@Override
public String toString(){
return msg;
}
private final String msg;
}
然后测试类具有:
@Test
public void test(){
String x = Message.INVALID_NUMBER_OF_REQUESTS.toString();
Assert.assertEquals(x, "actual value" );
}
最佳答案
cxfquest,
您的代码有(有些)错误,请更正。
以下代码对我有用:
public class MyTestUnit {
public enum Message{
NULL_REQUEST("Null Request"),
INVALID_NUMBER_OF_REQUESTS("Invalid number of requests");
Message(String msg){
this.msg = msg;
}
private final String msg;
public String getMsg() {
return msg;
}
@Override
public String toString() {
return msg;
}
}
@Test
public void test(){
String x = Message.INVALID_NUMBER_OF_REQUESTS.toString();
Assert.assertEquals(x, "actual value" );
}
}
我认为您未编译,并且正在运行旧版本(也许)。
结果是:
org.junit.ComparisonFailure:预期:
但是是:
如预期的那样。