आपका परीक्षण कवरेज प्रणाली कह रहा है "कोई भी कभी भी अपने इकाई परीक्षण के दौरान इस क्षेत्र तक पहुँचता है"। यही कारण है कि लाल पट्टी साधन है। तो यह दूर जाना आप कोड है कि उस क्षेत्र तक पहुँचता चलाने की आवश्यकता प्राप्त करने के लिए। उपयोग करने के लिए क्षेत्र प्रतिबिंब का उपयोग बढ़ाने के लिए इकाई परीक्षण कवरेज बकवास है। भले ही यह क्षेत्र हरा हो सकता है, यह वास्तव में एक सार्थक तरीके से क्षेत्र का उपयोग नहीं है।
यह करने के लिए सही तरीके से एक तरीका है कि का उपयोग करता है कि क्षेत्र में परीक्षण वर्ग व्यायाम करने के लिए है। serialVersionUID तय करने के लिए करता है, तो बाइट्स कि पढ़ा जा रहा है उद्देश्य यह है कि आप इन्स्तांत की कोशिश कर रहे मेल खाते हैं क्रमबद्धता / अक्रमांकन दौरान प्रयोग किया जाता है।
यहाँ एक सरल उदाहरण है कि कवर क्या आप चाहते हैं। मैं अंत में एक समानता परीक्षण कहा कि है, क्योंकि वास्तव में आप क्या जब आप क्रमांकन / deserialization प्रक्रिया के बारे में चिंतित हैं परीक्षण किया जाना चाहिए।
package org.does.not.exist;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import static org.assertj.core.api.Assertions.assertThat;
class Foo implements Serializable {
private static final long serialVersionUID = 42L;
public Foo(String value) {
this.value = value;
}
private String value;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Foo)) return false;
Foo foo = (Foo) o;
return value != null ? value.equals(foo.value) : foo.value == null;
}
@Override
public int hashCode() {
return value != null ? value.hashCode() : 0;
}
}
class StackoverflowTest {
@Test
void test() throws Exception {
Foo foo = new Foo("a string!");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(foo);
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream in = new ObjectInputStream(bis);
Foo copied = (Foo) in.readObject();
assertThat(foo).isEqualTo(copied);
}
}
इसलिए उपरोक्त करते हैं, लेकिन अपने स्वयं के वर्ग के साथ फू की जगह और आप कवरेज मिलना चाहिए।