JUnit ����

 

 
�� ������ IntelliJ IDEA���� JUnit �� �Բ� �۾��ϴ� �޼ҵ带 ����մϴ�.  ï¿½ï¿½ï¿½ï¿½ IDEA�� JUnit 3.8.1�� �Բ� �����˴ϴ�.
JUnit
�� ���� �� ���� ������� ����,  http://www.junit.org ï¿½ï¿½ �����Ͻʽÿ�.


JUnit Basics in Brief  

 

*   JUnit�� ȸ�� �׽�Ʈ �����ӿ�ũ�Դϴ�.

JUnit�� ����ϴ� ������ �޼ҵ�� �׽�Ʈ ����� �����մϴ�.  ï¿½×½ï¿½Æ® ����� �����ϱ� ���� ����� TestCase Ŭ������ Ȯ���ϰ�

�ִ� ���� Ŭ������ ������ �ʿ䰡 �ֽ��ϴ�.  ï¿½ï¿½ï¿½ï¿½ ����� �׵��� �̸� (���� ���, testSomething )���� test ï¿½ï¿½ �Բ� ���۵Ǵ�

Ŭ������ �޼ҵ带 �߰��� �ʿ䰡 �ֽ��ϴ�.
���ø����̼����μ� �׽�Ʈ�� �����ϱ� ����, Ŭ������ �־�� ���� �ֿ��� �޼ҵ带 ����Ͻʽÿ�:

 
    public static void main(String[] args) {
        new junit.textui.TestRunner().doRun(new TestSuite(<testClassName>.class));
    }
 

�� �ٸ� ����� Ŭ�������� public static Test suite() ï¿½Þ¼Òµï¿½ (Test  �������̽��κ��� ������ � Ŭ����/�������̽���

����� ����� �� �ִ� ���� ���·μ�)�� �����մϴ�.

���ø����̼����μ� �׽�Ʈ�� �����ϱ� ����, Ŭ������ �־�� ���� �ֿ��� �޼ҵ带 ����Ͻʽÿ�:

 
    public static void main(String[] args) {
        new junit.textui.TestRunner().doRun(suite());
    }



JUnit ����


ù ��°��, ����� JUnit ����/����� ������ �����ϰ�, ������ �ʿ䰡 �ֽ��ϴ�.  

���� ���� Run | Edit Configurations: Run/Debug Configurations: JUnit�� ���ʽÿ�.


����� ��Ű��, Ŭ������ ���� �޼ҵ忡 ���� JUnit �׽�Ʈ�� ������ �� ���� ����� �ֽ��ϴ�.

 
Toolbar���:
Edit Entries... ï¿½Þ´ï¿½ï¿½ï¿½ï¿½ï¿½ ������ JUnit ������ �����ϰ� ����/������� �����մϴ�.





���� IDEA���� ����� �˾� �޴��� ����Ͽ� JUnit �׽����� ������ �� �ֽ��ϴ�.

 
editor ï¿½ï¿½ï¿½ï¿½ : 

�װ��� �׽�Ʈ�ϴ� Ŭ���� ���� �Ǵ� �� �޼ҵ常�� �׽�Ʈ�ϴ� �޼ҵ� ���� ������ ��ư�� Ŭ���Ͻʽÿ�.



��ü Ŭ������ �׽�Ʈ�ϱ� ����, �޼ҵ� ���� �ۿ� ij���� �����ʽÿ�.


���� ����� main() ï¿½ï¿½ï¿½ï¿½ ���ο� ij���� ������ �׽�Ʈ�ϴ� ���� �ƴ� ���ø����̼� ����/����� ������

������ �� �Դϴ�.



��Ÿ���� ���� �޴��� Ŭ���� �Ǵ� �޼ҵ带 ���� JUnit �׽�Ʈ�� �����ϴ� ���� �����մϴ�.

 
 Project View  ( Project Tab, Packages Tab  ) �� Commander ï¿½Îºï¿½ï¿½ï¿½ : 

�׽�Ʈ ������ �����ϴ� Ŭ���� �Ǵ� �޼ҵ�(Show Members ï¿½ï¿½ on�� ��  Project Tab�Ǵ� Packages Tab����),

�װ��� �׽�Ʈ �ϱ� ���ؼ� ��Ű���� ������ ��ư Ŭ���Ͻʽÿ�.



��Ÿ���� ���� �޴��� ��Ű��/Ŭ����/�޼ҵ带 ���� JUnit �׽�Ʈ�� �����ϴ� ���� �����մϴ�.

JUnit ���� �޴� �׸��� �ܰ��� ����� �� ������ ��ҿ� �޷� �ֽ��ϴ�.

ù ��°��, JUnit Run/Debug ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ���õ� ����/Ŭ����/�޼ҵ带 ���� �ִ����� �߿��մϴ�.

�� ��°��, �װ��� �Ͻ����� �� �ְų� ������ �� �ִ� ���� Ÿ�Կ� �����մϴ�.

�������� ������ Ư���� ��Ű��/�޼ҵ�/Ŭ������ ���� ������ ������ �����Դϴ�.

�׷��� ���� � �׵��� ���� �������� ������ ���ٸ�,  ����� Run �Ǵ� Debug�� ������ �� �Ͻ����� �ϳ���

�ڵ������� �����˴ϴ�.


�Ͻ����� Run/Debug ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ���ø����̼ǰ� ���ø��� ���� ���� ������ �� �ֽ��ϴ�.



�Ͻ����� ������ ���� Run/Debug ���� �߿��� �������� ����ϰ� �����˴ϴ�.  ï¿½×·ï¿½ï¿½ï¿½ ���� �ϳ��� �Ͻ����� ������ ������ ��

�ֽ��ϴ�.  ï¿½ï¿½ï¿½ï¿½ï¿½ �������� ���� ���� ����/Ŭ����/�޼ҵ带 ���� ���� �Ǵ� ����׸� ������ ������ ���Ӱ� ������ �Ͻ�����

������ ������ �ӽ����� ���� ��ü�� ���Դϴ�.

Run "JUnit

configuration"  

���� ��������/�Ͻ����� JUnit Run/Debug ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ �����ϰų� �װ��� �����ϱ�

���� �ӽ����� ������ �����Ͻʽÿ�.

Debug "JUnit

configuration"  

 

���� ��������/�Ͻ����� JUnit Run/Debug ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ������ϰų� �ӽ����� ������

�����ϰ� �� ������� �����Ͻʽÿ�.

 

Test Result Tool Window  


JUnit
�׽�Ʈ ����� Run ï¿½Ç´ï¿½ Debug �� �������� Console ï¿½Ç¿ï¿½ï¿½ï¿½ �����˴ϴ�.




�� ������� ������ ���� ��ҷ� �����˴ϴ�:


Test tree view
, Output ï¿½ï¿½ Statistics ï¿½ï¿½ �׸��� �� ���� ����.

Test tree view ï¿½ï¿½ Ʈ���� ���� �������μ� ��� ���� ����� �׽�Ʈ�� �����մϴ�.  Æ®ï¿½ï¿½ ��� �̸��� Ŭ����/�޼ҵ� �̸���

�׽�Ʈ�ϱ� ���� ��ġ�մϴ�.  ï¿½×½ï¿½Æ® �޼ҵ带 ���� ����� �ڰ��� �־����� Ŭ���� �̸��� Ʈ�� ��� �̸��� ���� Å« ��ȣ��

�־����ϴ�.  ï¿½×½ï¿½Æ® Ŭ������ ����, ������, Ŭ������ ��ġ�ϴ� ���� �����ϴ�.

 

��� ���� �������� �� ���¸� �ݿ��մϴ�:

�׽�Ʈ�� ���������� ����߽��ϴ�.

�׽�Ʈ�� ǥ�� �Ǵ� ���� ������ �����߽��ϴ�.

�׽�Ʈ�� ���� ������ �����߽��ϴ�.

�׽�Ʈ�� �������� �ʾҽ��ϴ�.

�׽�Ʈ�� �����˴ϴ�.

�׽�Ʈ�� ���� �����ϰ� �ֽ��ϴ�.

�׽�Ʈ�� �ߴܵǾ����ϴ�.


��Ʈ ���� ���� �켱 ������ �Բ� �ڽ� ����� "���� ����" ����� �����ϰ� �ִ� ���� �������� ǥ���մϴ�:  

passednot run - running - interrupted - assertion failure - exception failure. 

���� �׽�Ʈ Ŭ������ TestCase Ŭ������ Ȯ���ϰ� �׽�Ʈ �޼ҵ� �̸��� test ï¿½Ü¾ï¿½ï¿½ ���۵˴ϴ�.  ï¿½×·ï¿½ï¿½ï¿½, ������ �� ���� �׽�Ʈ

���̽��� ���Ǵ� ���� ������ �޼ҵ� suite() ï¿½ï¿½ ����˴ϴ�.  ï¿½×°ï¿½ï¿½ï¿½ ������ Ư���� Ŭ���� �ν��Ͻ��� ���õ��� �ʴ� �� ��Ʈ��

�׽�Ʈ�� �����ϰ�, �� �׽�Ʈ�� �ƴ϶� �ϴ��� �׽�Ʈ�� ���������� ������ �� �Դϴ�.  

IDEA�� �׽�Ʈ Ŭ������ ��� �׽�Ʈ �޼ҵ带 ��Ȯ�ϰ� ǥ���ϰ� suite() ï¿½ï¿½ �ڽİ� �Բ� ���μ� Result tree view ï¿½ï¿½ï¿½ï¿½

��Ÿ���ϴ�.  ï¿½Ú½ï¿½ ���� suite()  ï¿½ï¿½ï¿½ï¿½ �׽�Ʈ�Դϴ�.

���� ����� Hide Passed ï¿½ï¿½ï¿½Í°ï¿½ �����ϰ� ��� �׽�Ʈ�� Ư�� ��带 ����Ǹ�, All Tests Passed �� �׽�Ʈ ������ ������

��Ÿ���ϴ�.



���� Output  ���� ������, Ʈ�� ���⿡�� ��Ҹ� �����ϴ� ���� ������ �׽�Ʈ�� ���� ����� ����� ǥ���մϴ�.  

�׸��� ���� Statistics ���� ������, ���� �����ϴ� ������ ������ ���Դϴ�.

Toolbars  

 

Left Toolbar  

 

������ JUnit ������ ����� �Ͻʽÿ�.

���μ��� ����� �����Ͻʽÿ�.

������ JUnit ���μ����� �����Ͻʽÿ�.

��� �� �����츦 �����ʽÿ�.

���� �������� ���ϴ�.

 

Upper Toolbar  

 

Hide passed  ï¿½Þ´ï¿½ï¿½ï¿½ ����� �׽�Ʈ�� �����ϴ� ��带 ����� ���� �����ε˴ϴ�.  

��� ���� �׽�Ʈ�� ���������� ����ǰ�, ���ο� ��� �׸�, All Tests Passed ï¿½ï¿½Ã¼ Ʈ���� ġȯ�ϸ鼭 ��Ÿ���ϴ�.

���� ������ Track Running Test ï¿½ï¿½Æ° ���� ����Ǵ� ���� Ʈ�� ������ �̵��մϴ�. �׸��� ���ÿ�

�� ����� Output tab���� ���Դϴ�.

��� Ʈ���� Ȯ���Ű�ʽÿ�.  ï¿½ï¿½ï¿½ï¿½ �� ��° ���� �бⰡ ������ �޽��ϴ�.

��� Ʈ���� ��ҽ�Ű�ʽÿ�.  ï¿½ï¿½ï¿½ï¿½ �� ��° ���� �� ������ �޽��ϴ�. �׷���, ��Ʈ ���� ���� �ʿ��� ��带

���� Ŭ���ϴ� �Ϳ� ���� ��ҵ� �� �ֽ��ϴ�.

Ʈ�� ���⿡�� ������ ������ �׽�Ʈ�� �׺����Ʈ �Ͻʽÿ�.

Ʈ�� ���⿡�� ������ ������ �׽�Ʈ�� �׺����Ʈ �Ͻʽÿ�.

���� Select First Failed Test When Finished ï¿½ï¿½ ������, ij���� Ʈ�� ���⿡ �ְ��� ������ �׽�Ʈ�� ������

�ڵ������� �Ű����ϴ� ���� �� ����� Output tab ï¿½ï¿½ï¿½ï¿½ ǥ�õ˴ϴ�.

���� Scrolls to Stacktrace�� ������, Output tab ï¿½ï¿½ï¿½ï¿½ �׽�Ʈ ���и� �߱��� ���� ���Ͽ� ����/ǥ�� ���� ������

�������� ���� ��ô ����� ��ũ�� �մϴ�.

���� Autoscroll to Source ï¿½ï¿½ ������, Test tree view ï¿½ï¿½ï¿½ï¿½ �׽�Ʈ�� �����ϸ� �����Ϳ��� �ҽ����� (�ʿ��ϴٸ�

�װ��� ���鼭)�� �׺����Ʈ�մϴ�. �����Ϳ��� �׽�Ʈ�� ù ��° ���� ������ ij���� ��ġ�߽��ϴ�.

���� Open Source at Exception ï¿½ï¿½ ������, ������ �ҽ� �ڵ� (View source, Edit source, Autoscroll to

source)�� ������ �ڵ尡 �ҷ����� �׽�Ʈ �޼ҵ� ���ο� ij���� �����ϴ� (���� ȿ���� ���� �������� �׽�Ʈ �޼ҵ�

������ Ŭ���ϴ� �Ϳ� ���� �޼��� �� �ֽ��ϴ�).

 

Test Status Panel  


Test Status ï¿½Ð³ï¿½ï¿½ï¿½  �׽�Ʈ ��Ȳ Output �� Statistics ï¿½ï¿½ï¿½ï¿½ ��ġ�մϴ�.



�װ��� ������ �׽�Ʈ ������ ���� ���¸� �ݿ��մϴ�:

Starting  

������ �׽�Ʈ���� ���ݵ� ���۵��� �ʾҴ� �׽�Ʈ�� �־��� ���� ǥ�������� �����߽��ϴ�.

Running  

�׽�Ʈ�� ����� ���� ǥ���߽��ϴ�.  ï¿½ï¿½ï¿½Ã¿ï¿½ �� �׸��� �־����ϴ�.  Ã¹ ��°�� �󸶳� ���� �׽�Ʈ�� �̹� ����Ǿ��°��� �����ְ� �� ��°�� �׽�Ʈ�� ��ü �����Դϴ�.

���� �׽�Ʈ�� ���� �����ߴ� ù��° ǥ�ð� ����Ǹ鼭, �ʴ� �׽�Ʈ�� �հ���Դϴ�.

���� � ������ �׽�Ʈ�� ������, ������ �׽�Ʈ�� �Ѱ踦 ���� ǥ���ϴ� Failed ���̺��� �Բ� ǥ�õ˴ϴ�. ���� �����ϰ� �ִ� �׽�Ʈ�� �̸��� ���� ǥ�õ˴ϴ�.

Terminated  

���� �׽�Ʈ ������ ����ڿ� ���� �ߴܵǸ� ǥ�õ˴ϴ�. �׸��� Running�� ���ؼ��� ���� ���� �ǹ��մϴ�.

Done  

��� �׽�Ʈ�� ����Ǿ��� ���� ǥ���߽��ϴ�. �׸��� Running ���̺� ���ؼ��� ���� ���� �ǹ��մϴ�. ���� ���� �� ��� �׽�Ʈ�� �հ��ϱ� ���� ǥ���ϴ� �� �ٸ� ���̺��� ��Ÿ���ϴ�.

 

Progress Bar  


Progress Bar ï¿½ï¿½ �󸶳� ���� �׽�Ʈ�� �Ǿ������� ǥ���մϴ�.  ï¿½×°ï¿½ï¿½ï¿½ ���� ���� ���� �� �ֽ��ϴ�:

Green  

���� ��� ����� �׽�Ʈ�� ���� ����Ǿ��ٸ� (�׽�Ʈ�� ��� �͵� �������� �ʾҴٸ�)

Yellow  

���� �׽�Ʈ ������ ����ڿ� ���� �ߴܵǰ� �̹� ����� �׽�Ʈ�� ��� �͵� �������� �ʾ�����.

Red  

���� ������ �׽�Ʈ�� ������.

 

Output Tab  


Output tab ï¿½ï¿½ �׽�Ʈ ���� ���� ������ ������ ǥ���մϴ�.  ï¿½ï¿½Æ® ��尡 Test tree view���� ���õ� ������ ���� �޽���

�Ӹ� �ƴ϶� ���� ����, ��� �׽�Ʈ�� ����� ǥ���մϴ�. �׸��� ���� � �ٸ� ��尡 ���õǸ�, ���� ���õ� ��忡 ����

��°� ���� �޽����� �� �ڽ��� �������ϴ�. �� ������ ��ũ�� �����մϴ�.  

�װ��� Ŭ���ϸ� ����� �����Ϳ��� ij���� �����ϴ� �����ϴ� ���ο� �׺����Ʈ�մϴ�.



���ڿ� �� ���� ǥ���� �߻��� ��, ����� �ణ �ٸ��ϴ�.  ï¿½Ì±ï¿½ ������ ���ڿ��� �ñ±³µï¿½ ��, ���ڴ� ��� �޽������� ���ĵ˴ϴ�.



��Ƽ���� ���ڿ�(�� "\n�� �����ϴ� �װ͵�)�� ���� ��, ����� ��ũ�� �����մϴ�.  ï¿½ï¿½Å©ï¿½ï¿½ Ŭ���ϸ� ���ڿ� ���̿��� ���̸� ����

���Ͽ�  Difference View�� �θ��ϴ�.

Statistics tab  


Statistics ���� ������ ����/����� ������ ���� ���� ���� ��� �����͸� ǥ���մϴ�.

Test  

����Ǿ��� ��� �׽�Ʈ�� ���� �հ踦 ǥ���ϴ� ù ��° ������ �����ϰ� �� ������ �׽�Ʈ���� ǥ���մϴ�.

Time elapsed  

�׽�Ʈ�� �����ϱ� ���� ����� �ð�.  Total ���� ��� �׽�Ʈ�� �հ� �ð��Դϴ�.

Usage Before  

�׽�Ʈ�� �����ϱ� ���� RAM ���.

Usage Delta  

�׽�Ʈ�� �����ϱ� ������ RAM ����� ����.  ï¿½ï¿½ï¿½ï¿½ (RAM-after-test - RAM-before-test)�� ���˴ϴ�.

 

���� ���, ���� gc �� �׽�Ʈ ���� ���� �����Ǹ�, ��Ÿ ���� �װ�Ƽ���� �� �ֽ��ϴ�.

Usage After  

�׽�Ʈ�� �����ϰ� �� ���� RAM ���.

Results  

�� Į���� �׽�Ʈ ������ ����� ǥ���մϴ�.  ï¿½×°ï¿½ï¿½ï¿½ Passed, Error, Assertion�� �� �� �Դϴ�.

Total ï¿½ï¿½ï¿½ï¿½ �Ǵ� � ���� �׽�Ʈ�� ���� ������ ǥ��(F), ����(E), �������� ���(P) ��

�󸶳� ���� �׽�Ʈ�� �����ߴ°��� �����ݴϴ�.


�ǿ��� ������ �����ϸ� Ʈ�� ���⿡�� �����ϴ� ��Ҹ� �����մϴ�.  ï¿½×¸ï¿½ï¿½ï¿½ ����� �ǿ��� Į���� �׵��� Į�� ������

Ŀ���͸������ϱ� ���� �巡�� & ����� �� �ֽ��ϴ�.


Context menus   


���� �޴��� Test tree view���� ��带 �Ǵ� Statistics �ǿ��� ��Ҹ�  ������ ��ư�� Ŭ���ϴ� �Ϳ� ���� �ҷ����ϴ�. 

Run "JUnit

Configuration"  

 above �� ������ ���ʽÿ�

Debug "JUnit

configuration"  

 

 above �� ������ ���ʽÿ�

Jump to Source  

���� ���õǸ�, �����Ϳ��� �׽�Ʈ ���� ���ο� ij���� ��ġ�ϰ� �ִ�

���õ� �׽�Ʈ�� �׺����Ʈ�ϰ�, ������ �ű⿡ �ű�ϴ�.

Show Source  

���� ���õǸ�, �����Ϳ��� �׽�Ʈ ���� ���ο� ij���� ��ġ�ϰ� �ִ�

���õ� �׽�Ʈ�� �׺����Ʈ�մϴ�.

�׷��� ������ JUnit Result Tool Window���� �����˴ϴ�.

Select in Tree  

��Ҵ� Statistics �ǿ����� ��Ÿ���ϴ�.  ï¿½ï¿½ï¿½ï¿½ ���õǸ�, Test tree view����

���õ� �Ϳ��� �����ϰ� �ִ� ��Ҹ� �����մϴ�.


Output ï¿½ï¿½ ���� �޴��� ������ �� �׸��� �����մϴ�:

Clear All  

��� â�� �����մϴ�.

Copy Content  

����� Ŭ�����忡 ī���Ͻʽÿ�.

 

Advanced features  


���� ������ �Ϻ� Java ������ �̿��մϴ�.  ï¿½ï¿½ï¿½ï¿½ �ڵ�� �Ʒ��� �����˴ϴ�.

1.  �ݷ����� ���ϴ� ��

Ư���� ��� ���̽��� �ֽ��ϴ�:  Difference View ï¿½ï¿½ �ݷ����� ���ϱ� ���� ���� �� �ֽ��ϴ�.  

����� �׵��� ��Ƽ���� ���ڿ��� ��ȯ�ϰ� assertEquals(String, String)�� �θ� �� �ֽ��ϴ�.

2.  Ư���� ��� ���̽�:

o��� ���̽��׽�Ʈ �ڷḦ ���Ͽ� �����ϴ� ��.

��츦 �������� ���� String Collection �� ��Ʈ�ϴ� ���� �ڵ带 �����Ͻʽÿ�.  

�׽�Ʈ �����ʹ� ����, �׽�Ʈ(ù ��°�� ��Ʈ�� �ݷ���, �� ��°�� ���� ���)�� ���� �� ���Ϸμ� �����˴ϴ�.  

IDEA�� �׽�Ʈ ���� ���� ���� ��η� ������ �� �ֽ��ϴ�.

 

 Ã¹ ��°��, �츮�� �׽�Ʈ �ڷḦ �������� �߰��ϱ� ���� ���� �޼ҵ尡 �ʿ��մϴ�.  

 
public class FSUtil {
 
  public static final String IN_EXTENSION = ".in";
  public static final String OUT_EXTENSION = ".out";
 
public static String[] findTests(File testData) {
    File[] inputs = testData.listFiles(new FilenameFilter() {
        public boolean accept(File dir, String name) {
          return name.endsWith(IN_EXTENSION);
        }
      });
    String[] names = new String[inputs.length];
    for (int i = 0; i < inputs.length; i++) { File inputFile = inputs[i]; String inputNameExt =
 inputFile.getName(); String inputName = inputNameExt.substring(0, inputNameExt.length() – 
IN_EXTENSION.length()); names[i] = inputName; } return names;
  }
}

 

���� ������ Ȯ���� �ִ� ������ testData ���͸����� �˻��˴ϴ�.  

������ �ڵ��� �Բ� ������� ���ϸ��� ����, �׽�Ʈ�� �����ǰ�, TestSuite�� �߰��˴ϴ�.

 
public class SortTestSuite extends TestSuite {
  public SortTestSuite() {
    super("Sort tests"); // Suite node name in tree view
    File testData = new File(".");
    String[] tests = FSUtil.findTests(testData);
    for (int i = 0; i < tests.length; i++) { String test = tests[i]; addTest(new MyTestCase(test,
 testData){});
    }
  }
 
  public static Test suite() {
    return new SortTestSuite();
  }
}



MyTestCase
�� �ϳ��� �׽�Ʈ �޼ҵ带 ������ Ŭ�����Դϴ�:  

 
public void test() throws IOException { // Test method to run
    String[] result = new Sort().sort(readStrings(input));
    assertEquals(toLines(readStrings(output)), toLines(result));
}
 
�츮�� Sort  Ŭ������ �־�� sort()  ï¿½Þ¼Òµå¸¦ �׽�Ʈ�ϰ� �ֽ��ϴ�. 
 
public class Sort {
   public String[] sort(String[] strings) { //dummy sort method
    Arrays.sort(strings);
    return strings;
  }
}
 

input�� ��Ʈ�� ���ڿ��� �����ϰ� �ִ� �ʵ��Դϴ�, output ï¿½ï¿½ ����Ǵ� ���� ����Դϴ�.

readStrings() ï¿½ï¿½ ���Ϸκ����� ���ڿ��� �а�, ���ڿ� �迭�� �����մϴ�.
toLines()
�� ���ڿ� �迭�� ��Ƽ���� ���ڿ��� �ٲߴϴ�.

 
public abstract class MyTestCase extends TestCase {
  private final String name;
  private final File input;
  private final File output;
 
  public MyTestCase(String name, File parentDirectory) {
    super("test"); // Passing test method name
    this.input = new File(parentDirectory, name + FSUtil.IN_EXTENSION);
    this.output = new File(parentDirectory, name + FSUtil.OUT_EXTENSION);
    try {
      this.name = this.input.getCanonicalPath();
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
  }
 
  public void test() throws IOException { // Test method to run
    String[] result = new Sort().sort(readStrings(input));
    assertEquals(toLines(readStrings(output)), toLines(result));
  }
 
  private String toLines(String[] strings) {
    StringBuffer buffer = new StringBuffer();
    for (int i = 0; i < strings.length; i++) { String string = strings[i]; buffer.append(string);
 buffer.append(System.getProperty("line.separator")); } return buffer.toString();
  }
 
  private String[] readStrings(File file) throws IOException {
    BufferedReader reader = new BufferedReader(new FileReader(file));
    String line;
        ArrayList lines = new ArrayList();
    while ((line = reader.readLine()) != null) {
      lines.add(line);
    }
    return (String[])lines.toArray(new String[lines.size()]);
  }
 
  public String getName() { // Test representation in tree view
    try {
        return input.getCanonicalPath();
    } catch (IOException e) {
        return super.getName();
    }
 }
}  

  
  

Result tree view ï¿½ï¿½ ������ ����� �� �ְ�, getName() ï¿½ï¿½ï¿½ï¿½ ������μ� ǥ�õ˴ϴ�.

 

getName()  ï¿½Þ¼Òµï¿½ï¿½ ������ �Է� �����Ϳ� �Բ� ���Ͽ� �� ��Ʈ�� �ݷ������� ���� ��θ� �����ϱ� ����

�������̵� �˴ϴ�.

o                        ��� ���̽� – ï¿½ï¿½ï¿½ï¿½ �׽�Ʈ ����
���� �׽�Ʈ ����/������� ���ۿ��� ����� �ͺ��� �� ���� �׽�Ʈ�� �ִٸ� IDEA�� ��Ȯ�ϰ� ���μ��� �մϴ�.

 

public class SortTest implements Test {
public int countTestCases() {
return 0;
}
 
public void run(TestResult testResult) {
File testData = new File(".");
String[] names = FSUtil.findTests(testData);
for (int i = 0; i < names.length; i++) { String name = names[i]; new MyTestCase(name, testData){}.run(testResult);
}
}
 
public static Test suite() {
return new SortTest();
}
}
    

countTestCases()�� ���θ� �����մϴ� �ֳ��ϸ� �츮�� �󸶳� ���� ����Ʈ ������ �߰ߵǴ���, �󸶳� ���� �׽�Ʈ�� ����Ǵ����� ���� ������ ���� �ʱ� ���� �Դϴ�.

run() �� ������ �׽�Ʈ�� ��ij��, �����ϰ� ���� �մϴ�.


ù ��°��, �װ��� ����Ǿ��� �ͺ��� �׽�Ʈ�� �����ϴ� ���� ���� �����ϴ�.  ï¿½ï¿½ï¿½ï¿½, IDEA�� �󸶳� ���� �׽�Ʈ�� �����Ǿ����� ����Ĩ�ϴ�. �׷��� ���� �׽�Ʈ�� �����ߴ� �޼ҵ�� �� �������� �ʾҽ��ϴ�. �� ��°��, �׽�Ʈ�� �׵��� Ŭ������ ���� ������ �˴ϴ�.