public class xyzException extends Exception{
private final Object mSource;
private final Object mObjectInError;
private final Throwable mCause;
public xyzException(Object obj1, Object obj2, Throwable cause, String message){
super(message);
this.mSource = obj1;
this.mObjectInError = obj2;
this.mCause = cause;
}
public static String getStackTrace(xyzException e) {
StringWriter sw = new StringWriter();
PrintWriter w = new PrintWriter(sw);
e.printStackTrace(w);
try {
w.close();
}
catch (final Exception ignore) {
}
return sw.toString();
}
Я написал этот тест, в JUnit для метода getStackTrace():неправильный выход для утверждают в JUnit тест для исключения
public class xyzExceptionTest {
private String message;
private String source;
private xyzException obj;
@Before
public void setUp() throws Exception {
message = "Exception";
source = "source";
obj = new xyzException(source, "MyObject.class", new NullPointerException(), message);
}
@Test
public void getStackTraceTest() {
assertEquals("GetStackTrace unexpected Value", "MyObject.class",xyzException.getStackTrace(obj));
}
}
Но это становится не удалось. как я могу исправить его и причину его отказа? Ошибка - утверждение получает исключения. Как я могу избежать этого.
Отредактированный assertEquals с надлежащим методом .. –
Я вижу. Код здесь заполнен «lil errors». Например, он не компилируется, потому что нет полей 'mSource',' mObjectInError' и 'mCause'. Они кажутся незначительными, поскольку они не используются. Должны ли они использоваться? –
Проблема сводится к тому, почему вы ожидаете «нового NullPointerException(). PrintStackTrace()' call для возврата «MyObject.class». Что именно вы пытаетесь достичь? –