Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема ClassLoader.getSystemResourceAsStream(), всегда возвращает null  
V
    Опции темы
FcUK
Дата 3.4.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 22.2.2007

Репутация: нет
Всего: 1



Догорого дня
у мене следующая проблема
нужно написать junit тесты для консольной апликухи. 
Там есть клас, который не получаетса протестировать
Вот он 


Код

public class ASM extends ICM {
    
    public ASM(String filename) throws IOException {
        super();
               
        InputStreamReader istream = new InputStreamReader(ClassLoader.getSystemResourceAsStream("sitelist.csv"));
        BufferedReader reader = new BufferedReader(istream);
        String line;
        while((line = reader.readLine()) != null) {
            String[] fields = line.split(",");
            if(fields.length > 3 && fields[3].trim().equalsIgnoreCase("yes")) {
                m_autoSiteIdSet.add(fields[0].trim());
            }
        }
    }

Питаюсь пысать тест. Пока банально хочу создать екземпляр класа. Но  в коде ClassLoader.getSystemResourceAsStream("sitelist.csv")  возникает java.lang.NullPointerException.



Код




public class ASMTest extends TestCase {

    protected void setUp() throws Exception {
        super.setUp();
    }

    protected void tearDown() throws Exception {
        super.tearDown();
    }
    
    public void testConstructor() throws Throwable {
        ASM  аsm = new ASM("C:\\tests\\result.txt");
                
    }
}




 Как мне правильно протестирвать даный клас? Изменять код нельзя.
И почему возникает ексепшин?

PM MAIL   Вверх
Maksym
Дата 3.4.2007, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



FcUK
Код

InputStreamReader istream = new InputStreamReader(ClassLoader.getSystemResourceAsStream("sitelist.csv"));

Тут, конечно, нужна проверка полученного InputStream на null.
Исключение возникает потому что ресурс не найден, как я понимаю. В это случае getSystemResourceAsStream возвращает null.
Здравый смысл подсказывает, что вместо хардкодед "sitelist.csv" должен передваться filename, который пришел в конструктор. Не изменяя код это вряд ли исправишь smile
PM MAIL   Вверх
FcUK
Дата 3.4.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 22.2.2007

Репутация: нет
Всего: 1



to Maksym

ок..ну это понятно...но все же апликуха рабочая и запускаетса с консоли  и работает без ексепшенов...я просто ее продебажить не можу..
мне вот просто интересно в каком каталоге ета прога ищет файл sitelist.csv?

PM MAIL   Вверх
Maksym
Дата 3.4.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



FcUK
Цитата(FcUK @  3.4.2007,  14:28 Найти цитируемый пост)
мне вот просто интересно в каком каталоге ета прога ищет файл sitelist.csv?

В CLASSPATH.

Добавлено @ 15:56
Вот детально для 1.4.2:
Цитата

System Resources

A system resource is similar to a system class. A system resource is a resource that is either built-in to the system, or it is kept by the host implementation in, for example, a local file system. System resources are accessed through special methods (getSystemResource and getSystemResourceAsStream) that consult the base host implementation.

For example, in a particular implementation, locating a system resource may involve searching the entries in the CLASSPATH. Each directory, zip file, or jar file entry in the CLASSPATH is searched for the resource file, and, if found, either an InputStream, or its name, is returned. If not found, null is returned. Note that a resource may be found in a different entry in the CLASSPATH than where the class file was loaded. 


Это сообщение отредактировал(а) Maksym - 3.4.2007, 15:56
PM MAIL   Вверх
FcUK
Дата 3.4.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 22.2.2007

Репутация: нет
Всего: 1



спасиб ...все заработалоsmile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.