2011-02-04 5 views
0

hi У меня есть один класс, и в этом классе у меня есть один способ: Я использую java.test case выпуск

public class ABC{ 
    some code here... 
    .................. 
    PreparedStatement pre; 
     public void insertUser(String firstName,String lastName){ 
      pre.setString(1,firstName); 
      pre.setString(2,lastName); 
      pre.execute(); 
     } 
} 

для выше метод, который я хочу, чтобы написать тестовый пример, я создал тестовый класс следующим образом:

public class ABCTest{ 
    ABC abc=new ABC(); 
    public void testInsertUser(){ 

вот теперь я хочу написать заявление Assert, я хочу проверить, является ли вставка успешно, Я хочу проверить переменную метода, используя assert(). Скажите, пожалуйста, как написать тестовый пример для этого в java.

+0

Обратите внимание, что вы, вероятно, не хотите, чтобы ваши юнит-тесты утверждали. Скорее всего, вы, вероятно, просто хотите вернуть 'boolean', чтобы ваша тестовая среда могла собирать результаты из нескольких тестов. –

+0

Справа, когда вы задавали свой вопрос, был этот удобный ** Как форматировать ** поле. Стоит прочитать, как [ссылка на страницу] (http://stackoverflow.com/editing-help) из ** [?] ** чуть выше области вопросов. Чем больше усилий вы зададите в своем вопросе, тем лучше качество и количество ответов, которые вы получите. Если ** ни один ** из ваших 11 других вопросов действительно получил приемлемый ответ, с уважением, это указывает на проблему с качеством вопросов. Сообщество StackOverflow более полезно. –

+0

Вы задали тот же запрос http://stackoverflow.com/questions/4895645/help-writing-junit-for-jdbc/4896904#4896904. Избегайте задавать повторяющиеся вопросы, если вы хотите, вы можете отредактировать свой вопрос, чтобы добавить дополнительные данные. – Pushkar

ответ

0

вы имеете в виду что-то вроде:

public void testInsertUser(){ 
ABC.insertUser(User.firstname, user.lastname); 
Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT firstname_Colname, lastname_Colname FROM Your_Table"); 
boolean found = false; 
while (rs.next()) 
{ 
    found = ((User.firstname = rs.getString("firstname_Colname")) and (User.lastname = rs.getString("lastname_Colname"))); 
    if (found) 
    { 
    break; 
    }  
} 
assertEquals('test failed!', true, found); 
} 

если да, вы на самом деле тестирования PreparedStatement, который не делает никакого смысла для меня!

1

Вам нужно сделать что-то вроде этих:

  1. Проверьте количество строк до и после INSERT и утверждают, что после подсчета на единицу больше, чем прежде, чем кол.
  2. Сделайте SELECT и посмотрите, помещена ли ваша строка в базу данных.
  3. Проверьте количество затронутых строк, которое возвращается вызовом, и убедитесь, что оно равно единице.
1

вероятно, у вас есть вместе с методом «insertUser» другие методы, такие как «selectUser» и «RemoveUser» так что в вашем TestCase вы должны использовать метод «selectUser», чтобы быть уверенным, что ваш пользователь появится в БД, а также в вы должны вызвать причину «removeUser» после тестирования, вы должны сохранить свои данные в чистоте, как было раньше (чтобы тесты могли работать несколько раз с теми же данными теста с одинаковыми результатами).