2012-06-27 3 views
-5

Я новичок в Java, и я сталкиваюсь с проблемой при реализации toString. Кто-нибудь может мне помочь? toString возвращает имя пакета и имя вызывающего класса вместо намерения результатов. Я использую eclipse 3.7.2. в другом месте в коде я использовал ToString и возвращать правильные результатыКак использовать toString в junit и eclipse

мой файл MyLibraryTest.java

public void testToString(){ 
    setup(); 
    addItems(); 
    //assertEquals("Test: 2 books; 2 people.", ml.toString()); 
    String results = ml.toString(); 
    assertEquals("Test: 2 books; 2 people.", results); 

} 

    results = org.totalBeginner.tutorial.MyLibraryTest.testToString 

Интересно, что же я сделал не так?

здесь код для установки()

 public void setup(){ 
    b1 = new Book("Book1"); 
    b2 = new Book("Book2"); 

    p1 = new Person(); 
    p2 = new Person(); 

    p1.setName("Fred"); 
    p2.setName("Sue"); 

    ml = new MyLibrary("test"); 

    } 

и вот код AddItems()

private void addItems() { 
     ml.addBook(b1); 
     ml.addBook(b2); 
     ml.addPerson(p1); 
     ml.addPerson(p2); 
     } 

здесь, как я реализую в ToString()

общественной строки toSrting() { // return this.getName() + ":" + this.getBooks(). size() + "books;" + this.getPeople(). size() + "people."; возвращение «Тест: 2 книги, 2 человека»;
}

+1

Что такое 'ml'? Как он определяется и инициализируется? Какова реализация метода toString()? –

+2

Можете ли вы показать нам toString impl? – GETah

+0

Что возвращает 'ml.toString()' в этот момент? – ametren

ответ

2

Из-за опечатки вы на самом деле не переопределяете метод toString. Вместо этого вы определили метод toSrting. Как видите, порядок символов t и r заменен. В этом причина неожиданного выхода напрямую из Object.toString.

+0

спасибо, такая глупая ошибка :-) –

Смежные вопросы