在运行 JunitString序列化测试后,它失败并给了我以下结果:预期:"netmodel"实际:"l"序列化方法如下public static void serializeString(String objectToSerialize, OutputStream outputStream) { byte[] bytesArr = objectToSerialize.getBytes(); serializeInt(bytesArr.length, outputStream); try { outputStream.write(bytesArr); } catch (IOException e) { e.printStackTrace(); }}我的反序列化方法如下public static String deserializeString(InputStream inputStream) {String deserializeObject = "";char asciiToChar;int stringByteArrayLength = deserializeInt(inputStream);byte[] databytesArr = new byte[stringByteArrayLength];try { inputStream.read(databytesArr, 0, stringByteArrayLength);}catch (IOException e) { e.printStackTrace();}for (int i = 0; i < databytesArr.length; i++) { asciiToChar = (char) databytesArr[i]; deserializeObject = "" + Character.toString(asciiToChar);}return deserializeObject;} 最后我写了一个单元测试如下public class StringSerializerTest { private InputStream iStream; private ByteArrayOutputStream oStream; @Before public void init() { oStream = new ByteArrayOutputStream(); } String serialzeAndDeserializeObject(String stringValue) { OutputStreamUtil.serializeString(stringValue, oStream); iStream = new ByteArrayInputStream(oStream.toByteArray()); return InputStreamUtil.deserializeString(iStream); } @Test public void equals_equal() { String stringValue = "netmodel"; String deserializedStringValue = serialzeAndDeserializeObject(stringValue); assertThat(deserializedStringValue).isEqualTo(stringValue); }}哪里错了?以及如何解决它?
添加回答
举报
0/150
提交
取消