PBO 10

   muhammad rafi budi purnama

5025221307

PBO 10

code : https://github.com/mbahbud/PBO.git

Sales Item Unit Testing

Penugasan kali ini kita kana mendemonstrasikan cara kerja unit testing. Class diagram nya seperti berikut.



Penerapan kode dari ketiga class tersebut adalah seperti berikut : 

Comment.java

public class Comment {
    private String author;
    private String text;
    private int rating;   // misalnya 1–5

    public Comment(String author, String text, int rating) {
        this.author = author;
        this.text = text;
        this.rating = rating;
    }

    public String getAuthor() {
        return author;
    }

    public String getText() {
        return text;
    }

    public int getRating() {
        return rating;
    }

    public String toString() {
        return author + " (" + rating + "/5): " + text;
    }
}

SalesItem.java

import java.util.ArrayList;

public class SalesItem {
    private String name;
    private int price;
    private ArrayList<Comment> comments;

    public SalesItem(String name, int price) {
        this.name = name;
        this.price = price;
        this.comments = new ArrayList<>();
    }

    public String getName() {
        return name;
    }

    public int getPrice() {
        return price;
    }

    public void addComment(String author, String text, int rating) {
        Comment c = new Comment(author, text, rating);
        comments.add(c);
    }

    public ArrayList<Comment> getComments() {
        return comments;
    }

    public void printInfo() {
        System.out.println("Item: " + name);
        System.out.println("Price: $" + price);
        System.out.println("Comments:");
        if (comments.isEmpty()) {
            System.out.println("  No comments yet.");
        } else {
            for (Comment c : comments) {
                System.out.println("  - " + c);
            }
        }
        System.out.println();
    }
}

SalesItemTest.java

import static org.junit.Assert.*;
import org.junit.Test;

public class SalesItemTest {

    @Test
    public void testSalesItemCreation() {
        SalesItem item = new SalesItem("Laptop Gaming", 1500);
        assertEquals("Laptop Gaming", item.getName());
        assertEquals(1500, item.getPrice());
    }

    @Test
    public void testAddComment() {
        SalesItem item = new SalesItem("Keyboard", 500);
        item.addComment("Aditya", "Bagus sekali!", 5);

        assertEquals(1, item.getComments().size());
        assertEquals("Aditya", item.getComments().get(0).getAuthor());
        assertEquals(5, item.getComments().get(0).getRating());
    }

    @Test
    public void testMultipleComments() {
        SalesItem item = new SalesItem("Mouse", 200);

        item.addComment("Adit", "Mantap", 4);
        item.addComment("Rizki", "Lumayan", 3);

        assertEquals(2, item.getComments().size());
    }
}

ketika pada class SalesItemTest dijalankan TestAll maka hasilnya adalah seperti berikut. 

Komentar

Postingan populer dari blog ini

TUGAS 2 : Jettpack compose : Hello, World!

Pertemuan 3 PPB (A) - Mengenal Composable Aplikasi Selamat Ulang Tahun

Pertemuan 5 - Aplikasi Kalkulator Sederhana