Hoe assertTrue gebruiken?

Ik heb:

package com.darlik.test;
import org.junit.Assert;
public class Test {
    public static void main(String[] args) {
        assertTrue(1, 2);
    }
}

pakket met org.junit is ingesteld en werkt, maar in lijn met assertTrue heb ik een fout:

De methode assertTrue(int, int) is niet gedefinieerd voor het type Test

Waarom? Ik gebruik Eclipse.


Antwoord 1, autoriteit 100%

assertTrueis gebaseerd op een enkele booleaanse voorwaarde. Bijvoorbeeld

assertTrue(1 == 2);

U moet de verklaring statisch importeren om te gebruiken

import static org.junit.Assert.assertTrue;

Typisch echter wordt assertEqualsgebruikt bij het vergelijken van 2 parameters, bijv.

public class MyTest {
   @Test
   public void testAssert() throws Exception {
        assertEquals(1, 2);
   }
}

Antwoord 2, autoriteit 35%

Van het document: assetTrue(boolean)of assetTrue(String, boolean )als je een bericht wilt toevoegen.

AssertTrue beweert dat een voorwaardewaar is, u moet nog steeds een dergelijke voorwaarde coderen voordat deze tijdens runtime beoordeeldwordt.


Antwoord 3, autoriteit 35%

Je moet de klasse specificeren die die methode definieert:

Assert.assertTrue(condition);

Bovendien roep je de methode aan met 2 parameters, wat nergens op slaat. assertTrueverwacht een enkele booleaanse uitdrukking.

Hoewel je dit ook kunt doen door een statische import te gebruiken:

import static org.junit.Assert.*;

waardoor je het in plaats daarvan kunt aanroepen als assertTrue(condition);.


Antwoord 4

Probeer assertThat beter met matchers. Bekijk deze blog erover https://objectpartners.com/2013/09/18/the-benefits-of-using-assetthat-over-other-asset-methods-in-unit-tests/

import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
....
    @Test
    public void testNum() {
       assertThat(repo.getNum(), is(equalTo(111)));
}

Antwoord 5

Verwijder het bestand module-info.javaals dat in het project aanwezig is. Het is niet nodig en wordt alleen gebruikt als u het ingebouwde modulesysteem van Java gebruikt.

Other episodes