Cześć, chciałem Wam zadać kilka pytań co do testowania, bo nie za bardzo wiem do kogo się zwrócić. Mianowicie mam taki test:
public class GCSQLInterfaceTest {
GCSQLInterface instance;
public GCSQLInterfaceTest() throws SQLException, ClassNotFoundException {
try{
instance = new GCSQLInterface("localhost", "test", "testuser", "pass");
}catch(SQLException | ClassNotFoundException e){
System.out.println(e.getMessage());
fail("No connection to database");
}
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of addFriend method, of class GCSQLInterface.
*/
@Test
public void testAddFriend() {
System.out.println("addFriend");
String user = "Janusz";
String[] friends = new String[10];
friends[0] = "Maciej";
for(int i =1;i<friends.length;++i){
friends[i] = friends[i-1]+"a";
}
for(int i = friends.length-1;i>=0;--i){
instance.addFriend(user, friends[i]);
}
String expectedFriends[] = instance.getFriendsArr(user);
assertArrayEquals(expectedFriends, friends);
}
}
Metoda void addFriend(String login1,String login2) dodaje kontakt o nazwie login2 dla użytkownika o nazwie login1
Metoda getFriendsArr(String login) zwraca listę kontaktów dla użytkownika o nazwie login
Muszę napisać testy jednostkowe i chodzi o to, że:
- Za każdym razem powinienem sprawdzać różne przypadki każdej metody, każdy przypadek powinien być osobnym testem czy wszystko w jednym ?
- W przypadku stringów jakie będą przypadki ? Po pierwsze normalne argumenty, później puste stringi, coś jeszcze ? Dobrze myślę ?
- Co w przypadku powyższej metody addUser ? Chciałbym sprawdzić czy działa poprawnie, ale jednocześnie żeby to zrobić, to używam innej metody czyli w sumie sprawdzam już dwie metody tak naprawdę, czy taki test jednostkowy jest w porządku ?
Z góry dziękuję za odpowiedź.
dodanie znacznika <code class="java"> - furious programming