Ich möchte eine Testklasse, um diese Klasse zu testen, aber ich weiß nicht, wie man es schreibt und ich versuchte online zu sehen, aber ich konnte es noch nicht herausfinden. Ich schrieb den Code auf BlueJ, ich versuche, das Set-Spiel zu erstellen.Wie schreibe ich eine Testklasse, um meinen Code zu testen?
Antwort
Sie müssen die Hauptmethode erstellen, die die Funktionalität Ihrer Klasse testen würde.
public static void main(String args[])
{
//To do
}
In Ihrer Hauptmethode müssen Sie zum Beispiel ein Kartenobjekt konstruieren (vorausgesetzt, Sie haben die Klasse Card).
Card card = new Card();
Dann müssen Sie auch ein Deck-Objekt erstellen, die Sie, um Methoden der Deck-Klasse aufrufen, um beispielsweise Karten auf dem Deck
Deck deck = new Deck();
Verwenden Sie das Deck-Objekt verwenden würde das Add-Methode aufrufen, um die Karte zu dem Deck
deck.add(card);
So jetzt Ihre wichtigste Methode sollte wie folgt aussehen hinzuzufügen:
public static void main(String args[])
{
Card card = new Card();
Deck deck = new Deck();
deck.add(card);
}
Auch in Ihrer Deck-Klasse würde ich empfehlen, List<Card> deck = new ArrayList<Card>();
statt ArrayList<Card> deck = new ArrayList<Card>();
zu verwenden.
Hoffe das gibt Ihnen einen Ausgangspunkt.
Zuerst müssen Sie entscheiden, welche Testfälle Sie für Ihre Klasse schreiben müssen. Sie können eine Bibliothek wie Junit verwenden, um Testfälle zu erstellen, sobald Sie die Testfallliste zur Hand haben.
Hier ist ein Beispiel für ein paar Junit Methoden
import static org.junit.Assert.assertEquals;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class MyClassTest {
MyClass tester;
@BeforeClass
public static void testSetup() {
tester = new MyClass();
}
@AfterClass
public static void testCleanup() {
// Do your cleanup here like close URL connection , releasing resources etc
}
@Test(expected = IllegalArgumentException.class)
public void testExceptionIsThrown() {
tester.divide(1000, 0);
}
@Test
public void testMultiply() {
assertEquals("Result", 50, tester.multiply(10, 5));
}
}
Entfernen Sie diese Redundanzinitialisierung, indem Sie sie in @Before oder etwas Ähnliches ziehen.Das Benennen des Objekts, das getestet wird, ist eine nette Konvention, imo. – atamanroman
Verwenden Sie ein Test-Framework wie JUnit, um die Probe weiter unten sehen,
public class ThingTester extends TestCase
{
public ThingTester (String name)
{
super (name);
}
public static void main(String[] args)
{
TestRunner.runAndWait(new TestSuite(ThingTester.class));
}
public void testGetName() throws Exception
{
String fileSpec = new String("c:xxxyyyzzz.txt");
assertEquals("zzz.txt", getName(fileSpec));
}
}
Ich glaube, ich nicht verstehen, was Sie wollen, aber ich werde meinen Vorschlag hier irgendwie geben.
Wo ist die Kartenklasse?
Fügen Sie diese Methode in Ihrer Deck-Klasse hinzu, kompilieren Sie Ihren Code und führen Sie ihn aus.
public static void main(String[] args) { Deck deck = new Deck(); // Call your methods here and do what do you want... }
Dies ist auch ein * Treiber *. Sie müssen ein Ergebnis bestätigen. – atamanroman
Sie sind der Grund, demotivate uns zu versuchen, jemandem zu helfen, weil Sie ohne Grund downvote ... Ich weiß, was ist Test-Klasse, aber das eigene der Frage vielleicht nicht, also lass ihn wählen, was er will und abstimmen in der besseren Antworten... –
Wenn Sie in Blue Jay sind, können Sie einfach einen Rechtsklick auf die Klasse und am unteren Rand des Pop - up, gibt es eine Option für „Create Testklasse“ sein. Dies vereinfacht den Prozess. Im Folgenden habe ich ein Beispiel dafür gegeben, was Blue Jay schafft.
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* The test class TestOfClass2Test.
*
* @author (your name)
* @version (a version number or a date)
*/
public class TestOfClass2Test
{
/**
* Default constructor for test class TestOfClass2Test
*/
public TestOfClass2Test()
{
}
/**
* Sets up the test fixture.
*
* Called before every test case method.
*/
@Before
public void setUp()
{
}
/**
* Tears down the test fixture.
*
* Called after every test case method.
*/
@After
public void tearDown()
{
}
}
- 1. Wie schreibe ich Code, um Code aus einer anderen Klasse zu testen?
- 2. Wie schreibe ich eine Testklasse für einen Apex-Trigger
- 3. Wie kann ich meinen Anti-Spam-Code gegen Bots testen?
- 4. Wie ändere ich meinen JavaScript-Code, um dies zu melden?
- 5. Wie schreibe ich JavaScript-Code, um HTML-Elemente zu duplizieren?
- 6. Wie schreibe ich einen Code um .fla Datei zu lesen?
- 7. Wie schreibe ich eine LDAP-Abfrage, um zu testen, ob der Benutzer Mitglied einer Gruppe ist?
- 8. Ich brauche Hilfe, um meinen Code zu profilieren
- 9. PyQt4: Ich kann meinen Dialog nicht öffnen, wenn ich meinen ersten Code schreibe
- 10. schreibe mit meinen Tasten
- 11. was kann ich tun, um meinen Code zu machen arbeitet
- 12. Wie schreibe ich eine PowerShell-Funktion, um Verzeichnisse zu bekommen?
- 13. kann Dateierweiterung auf Testklasse nicht testen?
- 14. Rest Server oder API, um meinen Restful-Client zu testen?
- 15. Wie schreibe ich ein Code-Snippet, um eine Methode in C# zu generieren?
- 16. Wiederverwendung von Geschäftslogik in einer Testklasse, um Zeit zu sparen
- 17. Wie kann ich Eclipse-Code-Stil verwenden, um meinen Code in Wordpress zu markieren
- 18. Wie schreibe ich vom Benutzer erweiterbaren Code?
- 19. Wie kann ich meinen JS-Code verbessern?
- 20. Wie schreibe ich Code in Linux, um automatisch 2 Fenster zu öffnen und zu verschieben?
- 21. Wie schreibe ich diesen Code mit SubSonic?
- 22. Wie schreibe ich einen "Wrapper" für meinen Fall
- 23. Wie kann ich meinen SQL-Code optimieren?
- 24. Wie bekomme ich Gradle Buildship, um meinen JAXB-Code erfolgreich in Eclipse zu erstellen?
- 25. Wie verberge ich meinen Quellcode, um nicht kopiert zu werden
- 26. Wie schreibe ich meinen Code in Scheme ohne Speichern von Statusinformationen in Strukturen?
- 27. Wie schreibe ich diesen Lisp/Scheme Code?
- 28. Wie schreibe ich eine neue #% Datumfunktion, um alle Zeichenfolgen abzufangen?
- 29. Wie schreibe ich meinen eigenen Wrapper in C#?
- 30. Wie schreibe ich Code, um über NAT ähnlich wie Skype zu kommunizieren?
Testen von Frameworks gibt es aus einem bestimmten Grund. Ihre Klasse ist ein * Treiber *, Testen bedeutet, ein Ergebnis zu bestätigen. – atamanroman
Ich fühlte nicht, das OP zu offenbaren es war vorteilhaft für ihn, wenn er immer noch nicht weiß, wie man eine Testklasse für sein Programm erstellt. Aus der OP-Beschreibung dachte ich, dass er eine Fahrerklasse brauchte, um sein Programm zu testen. –