Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Цель JUnit и Abbot


Автор: PashaOvechkin 20.11.2007, 19:07
Никогда не приходилось писать юнит тесты.
Сейчас есть необходимость тестить ГУИ с помощью Аббот...

Те кто пользовался етими или подобними штуками, поясните плз что они дают? 

Разобрался с Аббот... 
Принцип работы таков :

Есть  фреим, или что то подобное
Код


import java.awt.*;
import javax.swing.*;


public class Form extends JFrame{
     
     private JButton save;
    

    public BaseForm() {
        
        
         
        this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        this.setVisible(true);

        Container contentPane = this.getContentPane();
        
                
        // ---- LayOut
        contentPane.setLayout(null);
         //contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.PAGE_AXIS));
        //----
        
         save = new JButton("Save");
        save.setFocusPainted( false );
        
        save.setToolTipText("Save");
        addComponentButton.setBounds(new Rectangle( 120, 15, 150, 23));
        contentPane.add( addComponentButton );
        
        
    
}
 

Создаём специальний Аббот тест класс -> 

Код



import abbot.finder.Matcher;

import abbot.tester.ComponentTester;
import java.awt.Component;

import javax.swing.JButton;

import junit.extensions.abbot.ComponentTestFixture;
import junit.extensions.abbot.TestHelper;

public class BaseFormTest extends ComponentTestFixture{

    private ComponentTester tester;
    
    public BaseFormTest(String name) {
        super(name);
    }

    public void testMethod() throws Throwable {
                    
          //  System.out.println("--- IN --- !!!");
                    
            tester = ComponentTester.getTester(BaseForm.class);
            BaseForm frame = new BaseForm();
            
           //showFrame(frame);
            
           // Component list = getFinder().find(new ClassMatcher(JList.class));
           // JListTester tester = new JListTester();
            
            JButton submit = (JButton)getFinder().find(new Matcher() {
                public boolean matches(Component c) {
                    // Add as much information as needed to distinguish the component
                    return c instanceof JButton && ((JButton)c).getText().equals("Save");
                }
            });
            
                        
            
            //tester.actionSelectRow(list, new JListLocation(1)); 
            // tester.actionSelect(list, new JListLocation("Submit Orders"));
            assertEquals("Wrong SAVE button after selection","Save", submit.getText());
        }
    
    public static void main(String[] args) {
        TestHelper.runTests(args, BaseFormTest.class);
    }
}



Запуская ето супер класс мы получаем ответ  - СУПЕЕЕР - в случае если поданное название кнопки, совпадает с тем, что во фреиме указано...

Каким образом ето может помочь  анализировать логику? 
Каким образом ето вообще может помочь?!

Спасибо! 

Автор: AntonSaburov 20.11.2007, 19:41
Посмотри вот это - http://antonsaburov.narod.ru/students/part10.html - может поможет понять идею юнит-тестов

Автор: PashaOvechkin 22.11.2007, 12:43
Спасибо Антон - оочень позновательная статья! smile 
Жаль  плюсик не могу поставить...

Автор: AntonSaburov 22.11.2007, 13:51
Да ерунда - заходи почаще, задавай вопросы - потом и поставишь smile

Автор: powerOn 22.11.2007, 15:07
Цитата(PashaOvechkin @  22.11.2007,  12:43 Найти цитируемый пост)
Жаль  плюсик не могу поставить... 

ну это мы поможем smile

Автор: PashaOvechkin 22.11.2007, 15:17
 cool! smile 
Thanks powerOn  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)