0

Good Evening! Can somebody explain to me why am I getting this message? : No tests found with test runner 'JUnit5'

@Test is at the end of the RestaurantMenuTest.class

Here is the test class:

@ExtendWith(MenuEngineParameterResolver.class)
@DisplayName("Test of Restaurant Menu")
class RestaurantMenuTest {

ListOfPurchasedDishes listOfPurchasedDishes = new ListOfPurchasedDishes();

@Test
@DisplayName("test name")
void creatingListArrayWithPurchasedItems() {

    //here I create items the customer wants to purchase
    MenuItem item1 = new MenuItem("PL01", "Pierogi ruskie z cebulką", 28);
    MenuItem item2 = new MenuItem("PL01", "Pierogi ruskie z cebulką", 28);
    MenuItem item3 = new MenuItem("DPL02", "Naleśniki z czekoladą", 12);
    MenuItem item4 = new MenuItem("DPL02", "Naleśniki z czekoladą", 12);
    MenuItem item5 = new MenuItem("AC01", "Czerwone wino wytrawne", 18);
    MenuItem item6 = new MenuItem("AC02", "Czerwone wino półwytrawne", 18);
    MenuItem item7 = new MenuItem("NAC01", "Woda", 10);
    MenuItem item8 = new MenuItem("NAC01", "Woda", 10);
    MenuItem item9 = new MenuItem("NAC06", "Cytryna", 0);
    MenuItem item10 = new MenuItem("NAC07", "Lód", 0);
    MenuItem item11 = new MenuItem("NAC06", "Cytryna", 0);
    MenuItem item12 = new MenuItem("NAC07", "Lód", 0);

    //here I create an exemplary list I would like to get as an output
    List<MenuItem> expectedListOfPurchasedItems = new ArrayList<>();
    expectedListOfPurchasedItems.add(item1);
    expectedListOfPurchasedItems.add(item2);
    expectedListOfPurchasedItems.add(item3);
    expectedListOfPurchasedItems.add(item4);
    expectedListOfPurchasedItems.add(item5);
    expectedListOfPurchasedItems.add(item6);
    expectedListOfPurchasedItems.add(item7);
    expectedListOfPurchasedItems.add(item8);
    expectedListOfPurchasedItems.add(item9);
    expectedListOfPurchasedItems.add(item10);
    expectedListOfPurchasedItems.add(item11);
    expectedListOfPurchasedItems.add(item12);

    //here is the method of the program, the method is shown below in ListOfPurchasedDishes.class
    listOfPurchasedDishes.purchaseDish(item1);
    listOfPurchasedDishes.purchaseDish(item2);
    listOfPurchasedDishes.purchaseDish(item3);
    listOfPurchasedDishes.purchaseDish(item4);
    listOfPurchasedDishes.purchaseDish(item5);
    listOfPurchasedDishes.purchaseDish(item6);
    listOfPurchasedDishes.purchaseDish(item7);
    listOfPurchasedDishes.purchaseDish(item8);
    listOfPurchasedDishes.purchaseDish(item9);
    listOfPurchasedDishes.purchaseDish(item10);
    listOfPurchasedDishes.purchaseDish(item11);
    listOfPurchasedDishes.purchaseDish(item12);

    ArrayList<MenuItem> purchasedItems = listOfPurchasedDishes.listOfPurchasedItems();

    //neither this
    assertEquals(expectedListOfPurchasedItems, purchasedItems);
    //nor this works
    Assert.assertArrayEquals(expectedListOfPurchasedItems.toArray(), purchasedItems.toArray());


}//end of void creatingListArrayWithPurchasedItems
}//end of class RestaurantMenuTest

Here MenuItem has 3 fields:

private String id;
private String name;
private double price;

public MenuItem(String id, String name, double price) {
    this.id = id;
    this.name = name;
    this.price = price;
}

And ListOfPurchasedDishes.class looks like this

public class ListOfPurchasedDishes {

private ArrayList<MenuItem> purchasedItems = new ArrayList<>();

public ListOfPurchasedDishes() {}

public void purchaseDish(MenuItem menuItem) {
    purchasedItems.add(menuItem);
}//end of public void purchaseDish()

public ArrayList<MenuItem> listOfPurchasedItems() {
    return this.purchasedItems;
}//end of public ArrayList<MenuItem> listOfPurchasedItems()
}//end of public class ListOfPurchasedDishes

I am new to Unit Testing, and I have no clue what am I doing wrong in this example. Can someone point me into the right direction? Thanks!

Dominika
  • 187
  • 3
  • 13
  • 1
    Are you running this on Eclipse? Does this answer your question? [Eclipse No tests found using JUnit 5 caused by NoClassDefFoundError for LauncherFactory](https://stackoverflow.com/questions/46717693/eclipse-no-tests-found-using-junit-5-caused-by-noclassdeffounderror-for-launcher) – Shivam Puri Dec 08 '19 at 16:43
  • My guess is that you're not using the correct Test annotation. Post a **complete** minimal example reproducing the problem. From line 0 to last line. Imports included. – JB Nizet Dec 08 '19 at 16:45
  • Can you make sure all the imports are from junit 5 (test, assertions etc) also try to avoid any junit 4 dependency in the class path. – Suraj Muraleedharan Dec 08 '19 at 17:32
  • Thanks, the link above answers my question, I have imported: import org.junit.Test // JUnit 4 instead of import org.junit.jupiter.api.Test // JUnit 5, that's why the test was not running. Thank you! – Dominika Dec 09 '19 at 08:39

0 Answers0