1

ユーザーをリストに追加するための次のテストがあります。

@Test
public void testTheSizeOfUserListAfterAddingThreeUsers() {
    User james = new User(001, "JamesBond", "JB007", "Admin");
    User billy = new User(002, "BillyBob", "WOOHOONASCAR", null);
    User jane = new User(003, "CaliGurl88", "surfboardz", null);
    manager.addUser(james);
    manager.addUser(billy);
    manager.addUser(jane);
    assertEquals(3, manager.getSize());
    manager.removeUser(james);
    manager.removeUser(billy);
    manager.removeUser(jane);
}

ただし、次のテストを新たに開始するには、各テストの後に各ユーザーを削除する必要があります。

@After注釈を使用して、各テスト用に作成されたすべてのユーザーを削除する方法はありますか? おそらくforループを使用していますか?

4

3 に答える 3

1

テスト オブジェクトをリストに保存し、後で削除します。

public class TestClass{

    private List<User> createdUsers = new ArrayList<>();

    private Manager manager; //instantiate

    @Before
    public void setupUsers(){
        User james = new User(001, "JamesBond", "JB007", "Admin");
        User billy = new User(002, "BillyBob", "WOOHOONASCAR", null);    
        User jane = new User(003, "CaliGurl88", "surfboardz", null);
        createdUsers.add(james);
        createdUsers.add(billy);
        createdUsers.add(jane);
    }

    @After
    public void cleanUsers(){
        for(User createdUser : createdUsers){
            manager.removeUser(createdUser); //but if you test the behaviour of manager, then remove the created instances independently from manager
        }
        createdUsers.clear();
    }
}
于 2013-06-06T13:22:27.027 に答える
0

@After注釈は、各テストの後に実行されるメソッドで使用されます。この方法では、テスト環境をきれいにするために必要なことは何でもできます。

@After
public void cleanup() {
    // Cleaning code goes here
}

メソッド名として任意の名前を使用できます。

User インスタンスをList<User>テスト クラスの , プロパティに保存してから、@Afterメソッドでそれらを削除できます。Listリストからユーザーを削除したら、忘れずにユーザーを削除してくださいmanager

public class MyTestClass {

private List<User> users = new ArrayList<User>();

@Test
public void testTheSizeOfUserListAfterAddingThreeUsers() {
    User james = new User(001, "JamesBond", "JB007", "Admin");
    User billy = new User(002, "BillyBob", "WOOHOONASCAR", null);
    User jane = new User(003, "CaliGurl88", "surfboardz", null);
    manager.addUser(james);
    manager.addUser(billy);
    manager.addUser(jane);
    users.add(james);
    users.add(billy);
    users.add(jane);
    assertEquals(3, manager.getSize());
}

@After
public void cleanup() {
    for (User user : users) {
        manager.removeUser(user);
    }
    users.clear();
}
}
于 2013-06-06T13:17:41.300 に答える