Permalänk
Medlem

Jag använder det gärna, bara jag vet hur

Har du förslag på hur jag ska få in equals i samband med integers?

Tack för hjälpen

Permalänk
Medlem
Skrivet av JJ72:

Herregud vad detta börjar bli långrandigt.....

Jadu, nu har du lagt till JUnit och annoterat med @Test samt tagit bort din public static void main. För absolut enklast lösning på det här så ta bort JUnit och lägg tillbaka public static void main.

Återkom gärna till JUnit senare när du lärt sig mera grunder och vill lära dig testa ordentligt, men blanda inte hejvilt medan du försöker få en sak att fungera.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Haha. ok

Det där main rök av bara farten. Inte ens min avsikt :-0

Det blev nog när jag letade efter VM-arguments....

Permalänk
Medlem
Skrivet av JJ72:

Jag använder det gärna, bara jag vet hur

Har du förslag på hur jag ska få in equals i samband med integers?

Tack för hjälpen

Svarar med att citera mig själv

Skrivet av Teknocide:

För ints använder man ==. Du använder .equals på rätt sätt i ditt exempel

ints är alltså integers. För att förtydliga: du använder == för att jämföra integers (int) och .equals för att jämföra strängar (String).

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Keeper of Traditions
Skrivet av JJ72:

Haha. ok

Det där main rök av bara farten. Inte ens min avsikt :-0

Det blev nog när jag letade efter VM-arguments....

Du hade väl redan löst uppgiften. Du skapade ett par objekt av klassen du skapat och gett det olika attribut som du sedan visade att du kunde hämta ut.

Mer tror jag inte läraren förväntar sig och innan man fått koll på grunderna så är det nog den nivån man ska lägga sitt testande på.

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem

Ja, haha. Det är väl kanske såhär det blir när man sitter o stirrar på samma sak i några dar.

Nu har jag iaf ändrat, så jag har main igen. Och det är ju kul att jag kan läsa innantill....
"ints är alltså integers. För att förtydliga: du använder == för att jämföra integers (int) och .equals för att jämföra strängar (String)."

Kan detta funka?

public class TestFlygplanTest { public static void main(String[] args) { Flygplan flyg1 = new Flygplan(100, 1, 200, "Cargo"); flyg1.setAltitude(1100); int newAltitude = flyg1.getAltitude(); assert newAltitude == (1100): "Felaktig altitud. Borde varit 1100 men var " + newAltitude; flyg1.setCourse(2); int newCourse = flyg1.getCourse(); assert newCourse == 2: "Felaktig riktning. Borde varit 2 men var " + newCourse; flyg1.setSpeed(1000); int newSpeed = flyg1.getSpeed(); assert newSpeed == 1000: "Felaktig hastighet. Borde varit 1000 men var " + newSpeed; flyg1.setModel("Loop"); String newModel = flyg1.getModel(); assert newModel.equals("Loop"): "Felaktig modell. Borde varit Loop men var " + newModel; Flygplan flyg2 = new Flygplan (1000, 3, 300, "Charter"); flyg2.setAltitude(12000); int newAltitude2 = flyg2.getAltitude(); assert newAltitude2 == 12000: "Felaktig altitud. Borde varit 12000 men var " + newAltitude2; flyg2.setCourse(1); int newCourse2 = flyg2.getCourse(); assert newCourse2 == 1: "Felaktig riktning. Borde varit 1 men var " + newCourse2; flyg2.setSpeed(9000); int newSpeed2 = flyg2.getSpeed(); assert newSpeed2 == 9000: "Felaktig hastighet. Borde varit 9000 men var " + newSpeed; flyg2.setModel("Boeing"); String newModel2 = flyg2.getModel(); assert newModel2.equals("Boeing"): "Felaktig modell. Borde varit Boeing men var " + newModel; flyg1.Print(); flyg2.Print(); } }

Jag får ett failure dock

Permalänk
Medlem

class TestFlygplan{ public static void main(String[] args) { Flygplan flyg1 = new Flygplan (100, 1, 200, "Cargo"); flyg1.setAltitude(1100); int newAltitude = flyg1.getAltitude(); assert newAltitude == 1100: "Felaktig altitud. Borde varit 1100 men var " + newAltitude; flyg1.setCourse(2); int newCourse = flyg1.getCourse(); assert newCourse == 2: "Felaktig riktning. Borde varit 2 men var " + newCourse; flyg1.setSpeed(1000); int newSpeed = flyg1.getSpeed(); assert newSpeed == 1000: "Felaktig hastighet. Borde varit 1000 men var " + newSpeed; flyg1.setModel("Bomber"); String newModel = flyg1.getModel(); assert newModel.equals("Bomber"): "Felaktig modell. Borde varit Bomber men var " + newModel; Flygplan flyg2 = new Flygplan (1000, 3, 300, "Charter"); flyg2.setAltitude(12000); int newAltitude2 = flyg2.getAltitude(); assert newAltitude2 == 12000: "Felaktig altitud. Borde varit 12000 men var " + newAltitude2; flyg2.setCourse(1); int newCourse2 = flyg2.getCourse(); assert newCourse2 == 1: "Felaktig riktning. Borde varit 1 men var " + newCourse2; flyg2.setSpeed(9000); int newSpeed2 = flyg2.getSpeed(); assert newSpeed2 == 9000: "Felaktig hastighet. Borde varit 9000 men var " + newSpeed; flyg2.setModel("Boeing"); String newModel2 = flyg2.getModel(); assert newModel2.equals("Boeing"): "Felaktig modell. Borde varit Boeing men var " + newModel; flyg1.Print(); flyg2.Print(); } }

Permalänk
Medlem
Skrivet av JJ72:

Kan detta funka?

Jag får ett failure dock

Vad är det för fel du får då? Något assertion borde ju säga något

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Koden ser ok ut, som Teknocide sade, vad får du för failure?

Angående assert som har diskuterats här, det skadar ju absolut inte att du använder det om du vill, men jag tvivlar starkt på att det krävs om ni inte har tagit upp det tidigare. Ett testprogram betyder antagligen bara att du skall skriva en "public static void main(..)" där du använder de funktioner du skapat och ser att de beter sig som de borde. När det gäller så här simpla funktioner känns det kanske lite onödigt, men det underlättar för den som kontrollerar att det du skrivit är rätt.

Permalänk
Medlem

Hej!

Jag har varit bortrest och inte kunnat vara här.
Felet jag får är från TestFlygplan.Test. Fast den klassen behövs väl egentligen inte ens om jag lägger testprogrammet i klassen Testflygplan (som visat ovan)?

Det står iaf: java.lang.AssertionError: Felaktig altitud. Borde varit 1100 men var 1100

öööh?

Tack igen

Permalänk
Medlem
Skrivet av Tazavoo:

Koden ser ok ut, som Teknocide sade, vad får du för failure?

Angående assert som har diskuterats här, det skadar ju absolut inte att du använder det om du vill, men jag tvivlar starkt på att det krävs om ni inte har tagit upp det tidigare. Ett testprogram betyder antagligen bara att du skall skriva en "public static void main(..)" där du använder de funktioner du skapat och ser att de beter sig som de borde. När det gäller så här simpla funktioner känns det kanske lite onödigt, men det underlättar för den som kontrollerar att det du skrivit är rätt.

Du har förmodligen helt rätt Tazavoo.

Men nu har jag hållt på med detta så mycket fram och tillbaka, att jag kan lika gärna försöka lära mig det
Grejen är att jag försöker lära mig java bara för min egen skull, det är varken jobb eller studierelaterat egentligen. Jag råkade ha tur och komma in på en kurs för att de helt plötsligt fick extraresurser. Och eftersom jag lär mig för mig, så kan jag lika gärna försöka lära mig asserts när jag ändå håller på

Jag uppskatta iaf verkligen ditt inlägg. Jag har försökt få kontakt med någon lärare på kursen för att reda ut vad som gäller, men som vanligt lyser de med sin frånvaro

Permalänk
Medlem
Skrivet av JJ72:

Hej!

Jag har varit bortrest och inte kunnat vara här.
Felet jag får är från TestFlygplan.Test. Fast den klassen behövs väl egentligen inte ens om jag lägger testprogrammet i klassen Testflygplan (som visat ovan)?

Det står iaf: java.lang.AssertionError: Felaktig altitud. Borde varit 1100 men var 1100

öööh?

Tack igen

Låter som att du har en extra inre klass i TestFlygplan. Gissar på att du gör en skev jämförelse där och skriver ut fel variabel i felrapporten.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Alright. Tackar för det svaret

Permalänk
Medlem

@JJ72:
En liten detalj när man skriver frågor i ett forum. Istället för att skriva "en javafråga" "en till fråga om java" "ännu en fråga o java" etc Så kan det vara praktiskt om man i rubriken skriver något om vad det gäller. Till exempel Java, Hur får jag en anka att flyga över skärmen? På så vis förstår folk lite vad det gäller och det är enklare att kolla på vad som diskuterats i efterhand.

Visa signatur

/M

Permalänk
Medlem