मेरी गतिविधि में एक सूची दृश्य है, उपयोगकर्ता एक बटन दबाकर सूची का आदेश दे सकता है। मैं परीक्षण करना चाहता हूं कि क्या यह सुविधा मेरी अपेक्षा के अनुरूप काम कर रही है। इसलिए, मैंने मॉकिटो टेस्ट बनाने का फैसला किया।

मेरे पास अब तक क्या है:

@Test
public void checkIfOrderAscendingIsWorking() throws Exception {
    // generate random users
    List<User> users = new ArrayList<User>();
    for (int i = 0; i< QUANTITY_USERS_TO_TEST; i++){
        users.add(generateRandomUser(i+1));
    }

    mListUserView.displayUsers(users);
    mUserPresenter.sortUsers(true);

    // sort the users to compare
    Collections.sort(users, new Comparator<User>() {
        public int compare(User lhs, User rhs) {
            return lhs.name.compareToIgnoreCase(rhs.name);
        }
    });
  // How can I compare both lists? 
}

तो, मैं सूचीदृश्य उपयोगकर्ता सूची की तुलना अपनी स्थानीय उपयोगकर्ता सूची से कैसे कर सकता हूं? ऐसा करने का सबसे अच्छा अभ्यास क्या है?

0
Lücks 8 जिंदा 2017, 03:43

2 जवाब

आप केवल mUserPresenter ऑब्जेक्ट से सॉर्ट किए गए उपयोगकर्ता प्राप्त कर सकते हैं। कुछ इस तरह:

List<User> sortedUsers = mUserPresenter.getUsers();

मैं आप ऐसा करने में सक्षम नहीं हैं, आप उस वस्तु में गेटर बना सकते हैं।

तब आप बस दोनों सूची में पुनरावृति कर सकते हैं और अभिकथन चला सकते हैं:

for (int i = 0; i < users.size(); i++) {
  assertEquals(users.get(i), sortedUsers.get(i));
}
1
alayor 8 जिंदा 2017, 18:59
नमस्ते! आपकी सहायता के लिए धन्यवाद। मैंने इस विधि को अपने विचार पर बनाया है: सार्वजनिक सूची <उपयोगकर्ता> getUsers() {वापसी mUsersAdapter.getItems (); } और फिर, मेरे प्रस्तुतकर्ता पर बनाया गया: सार्वजनिक सूची<उपयोगकर्ता> getUsers(){ वापसी mView.getUsers(); } लेकिन जब मैं मॉकिटो पर प्रस्तुतकर्ता विधि को कॉल करता हूं, तो यह खाली लौट रहा है।
 – 
Irineu Licks Filho
8 जिंदा 2017, 19:22
1
ठीक है, मुझे लगता है कि मेरी समस्या यह है कि प्रस्तुतकर्ता को उपयोगकर्ताओं की सूची वापस करने की आवश्यकता है, न कि दृश्य, यह सही है?
 – 
Irineu Licks Filho
8 जिंदा 2017, 19:32

1) अपनी सूची को अपने प्रस्तुतकर्ता पर सहेजें

2) इस कोड को जोड़ें:

@Test
public void checkIfOrderAscendingIsWorking() throws Exception {
    // generate random users
    List<User> users = new ArrayList<User>();
    for (int i = 0; i< QUANTITY_USERS_TO_TEST; i++){
        users.add(generateRandomUser(i+1));
    }

   mUserPresenter.displayUsers(new ArrayList(users)); // avoid reference
    mUserPresenter.sortUsers(true);

    // sort the users to compare
    Collections.sort(users, new Comparator<User>() {
        public int compare(User lhs, User rhs) {
            return lhs.name.compareToIgnoreCase(rhs.name);
        }
    });
  Assert.assertThat(mUserPresenter.getUsers(),
            IsIterableContainingInOrder.contains(users.toArray()));
}
0
Irineu Licks Filho 8 जिंदा 2017, 20:04