Использование String.ValueOf () для преобразования Float в String в селене показывает исключение - java.lang.ClassCastException: java.lang.Float нельзя привести к [C - PullRequest
0 голосов
/ 26 апреля 2019

Я пытался запустить несколько тестов, связанных с REST API, используя Selenium.В соответствии с приведенным ниже кодом мне нужно преобразовать значение Float в String.

Когда я использую String.valueOf (float arg), я получаю исключение - java.lang.ClassCastException: java.lang.Float не может бытьприведение к [C

код:

@Test

public void Test01()
{
    Response r=given().parameter("id", "someID").parameter("appid", "someID").when().get("someURL");

    String lon=String.valueOf(r.then().contentType(ContentType.JSON).extract().path("coord.lon"));

    System.out.println(lon);
}

Ожидаемое: преобразование значения должно быть успешным.то есть, Float -> String

Фактически: СБОЙ: Test01

java.lang.ClassCastException: java.lang.Float cannot be cast to [C
    at APITestingProject.com.org.api.TransferingAPIResponse_2.Test01(TransferingAPIResponse_2.java:19)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:643)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
    at org.testng.TestRunner.privateRun(TestRunner.java:782)
    at org.testng.TestRunner.run(TestRunner.java:632)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
    at org.testng.SuiteRunner.run(SuiteRunner.java:268)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
    at org.testng.TestNG.run(TestNG.java:1064)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

1 Ответ

0 голосов
/ 26 апреля 2019

Измените эту часть вашего кода

String lon=String.valueOf(r.then().contentType(ContentType.JSON).extract().path("coord.lon"));

Необходимо использовать метод Float.toString ()

String lon=Float.toString(r.then().contentType(ContentType.JSON).extract().path("coord.lon"));

если вам нужна дополнительная информация, посетите этот сайт http://javadevnotes.com/java-float-to-string-examples

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...