簡體   English   中英

如何模擬調用集合方法而該集合沒有設置方法的方法?

[英]how to mock method which invoke collection method and this collection has not setter?

我有以下課程:

public class UsersHolder {
    private Set<User> users = new HashSet<>();

    public void addUser(User user) {
        users.add(user);
    }
    ...
}

用戶尚未設置方法

有沒有辦法測試addUser方法?

有辦法

@RunWith(MockitoJUnitRunner.class)
public class UsersHolderTest {
    @InjectMocks private UsersHolder usersHolder;
    @Mock private Set<User> users;

    @Test
    public void addUser_shouldAddUser() {
        // given
        User user = new User();
        // when
        usersHolder.addUser(user);
        // then
        Mockito.verify(usersHolder).add(user);
    }
}

話雖如此,我不會測試這種簡單的邏輯。 此外,在這種情況下,集合成為應該從外部來的類依賴關系(通常將集合視為類內部受管理的數據持有者)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM