2017-03-29 3 views

Antwort

0

Sie können die Eigenschaften nach den erwarteten Werten filtern und die resultierenden Einträge zählen. Diese Nummer muss der Originalgröße entsprechen.

List<Integer> expected = Arrays.asList(1, 2, 3); 
long count = objects.stream() 
    .map(MyObject::getId) 
    .filter(id -> expected.contains(id.intValue())) 
    .count(); 
Assert.assertEquals(objects.size(), (int) count); 

Wenn Sie alle Eigenschaften in einem Stream überprüfen möchten, tun Sie es wie folgt aus:

long count = objects.stream() 
    .filter(o-> expectedIds.contains(o.getId().intValue())) 
    .filter(o-> expectedNames.contains(o.getName())) 
    // and so on 
    .count(); 
+0

Ich brauche würde dies für jeden tun separat Attribut, nicht wahr? Ich möchte einen Weg, ein Objekt in einer Aussage zu testen. Ist das möglich? – user1660256

+0

Nein, das tust du nicht. Nicht "zuordnen" und filtern für jede Eigenschaft, die Sie überprüfen möchten, e. G. '.filter (o -> expectedIds.contains (o.getId(). intValue()))' –

+0

Hinweis: Ich würde nicht alle Eigenschaften in einem Stream überprüfen ** was ** Eigenschaft ist falsch –