einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen

Diskutiere einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen im Allgemeine Java-Themen Bereich.
P

PG_97

Guten Morgen,

ich stehe momentan auf dem Schlauch und muss jedoch einen public <Optinal String> aus einer Klasse in eine Test Klasse bringen und dort mit einem Int vergleichen.
Was mir klar ist, ist das das Int umgewandelt werden muss und da habe ich mir bisher folgender Maßen geholfen:

Einmal der String
Code:
@Override
    public Optional<String> getKey(final String login, final String pwd) {
        if (isValid(login, pwd)) {
            return Optional.of(KEY);
        }
        return Optional.empty();
    }
und einmal die Testklasse
Code:
@Test
    void getKeyShouldReturnTrue() {
        Optional<String> getKey = Optional.of("1");
        Integer num = Integer.valueOf(getKey.get());
        if (num == 1) {
            System.out.println("true");
            } else {
                System.out.println("false");
            }
    }
Ich hoffe mir kann jemand auf die Sprünge helfen.
Schönen Tag und vielen Dank im Voraus.
 
MoxxiManagarm

MoxxiManagarm

Ich kann nicht erkennen, warum du es zwingend mit einem Int vergleichen willst. Das macht überhaupt keinen Sinn, schließlich liefert getKey() doch auch einen Optional<String> zurück.

In deinem Test rufts du getKey nicht einmal auf. Du verwendest lediglich das lokale Attribut, welches zufällig genauso heißt. Eigentlich testet du garnichts damit. Auch der Name des Testfalles ist irritierend, denn Optional<String> ist niemals true. Der Name müsste eher lauten getKeyShouldReturnKey

Was du in deinem Test der Funktion getKey tun müsstest:

Java:
@Test
void getKeyShouldReturnNumericKey() {
  // prepare
  YourClassWithGetKey test = mock(YourClassWithGetKey.class);
  when(test.isValid(anyString(), anyString())).thenReturn(true);

  // call
  Optional<String> result = test.getKey("foo", "bar");

  // check
  assertTrue(result.isPresent()); // prüft ob ein Key da ist, d.h. nicht empty
  assertTrue(result.get().matches("\\d+")); // prüft ob der vorhandene Key nur aus Digits besteht
}
Der Negativfall wäre entsprechend

Java:
@Test
void getKeyShouldReturnEmpty() {
  // prepare
  YourClassWithGetKey test = mock(YourClassWithGetKey.class);
  when(test.isValid(anyString(), anyString())).thenReturn(false);

  // call
  Optional<String> result = test.getKey("foo", "bar");

  // check
  assertFalse(result.isPresent()); // empty, Login nicht erfolgreich
}
 
Zuletzt bearbeitet:
Thema: 

einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben