diff --git a/src/test/java/fr/nancy/iut/UserInterfaceTest.java b/src/test/java/fr/nancy/iut/UserInterfaceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..91dbd6e0d8749f971e7f904b9ef8f80775a6c585
--- /dev/null
+++ b/src/test/java/fr/nancy/iut/UserInterfaceTest.java
@@ -0,0 +1,64 @@
+package fr.nancy.iut;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class UserInterfaceTest
+{
+    @Test
+    public void testConstructor()
+    {
+        UserInterface ui = new UserInterface(new CalcEngine());
+        assertTrue(ui.isVisible(), "User interface should be visible");
+    }
+
+    @Test
+    public void testSetVisible()
+    {
+        UserInterface ui = new UserInterface(new CalcEngine());
+        ui.setVisible(false);
+        assertFalse(ui.isVisible(), "User interface should not be visible");
+    }
+
+    @Test
+    public void testActionPerformed()
+    {
+        UserInterface ui = new UserInterface(new CalcEngine());
+
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "0"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "1"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "2"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "3"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "4"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "5"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "6"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "7"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "8"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "9"));
+
+        assertEquals("123456789", ui.getDisplay().getText(), "Display should be 0123456789");
+
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "C"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "+"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "-"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "*"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "/"));
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "="));
+
+        assertEquals("0", ui.getDisplay().getText(), "Display should be 0 because of C button");
+    }
+
+    @Test
+    public void testShowInfo()
+    {
+        CalcEngine engine = new CalcEngine();
+        UserInterface ui = new UserInterface(engine);
+
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "?"));
+        assertEquals("version 0.2", ui.getStatus().getText(), "Status should be the version of the calculator");
+
+        ui.actionPerformed(new java.awt.event.ActionEvent(ui, 0, "?"));
+        assertEquals("Hacker T. Largebrain", ui.getStatus().getText(), "Status should be ");
+    }
+}