Index: tests/test_phase.py
===================================================================
--- tests/test_phase.py	(revision ff15f842f11dbfe858f4ac7a3c83d47b9a414bad)
+++ tests/test_phase.py	(revision ff15f842f11dbfe858f4ac7a3c83d47b9a414bad)
@@ -0,0 +1,55 @@
+import pytest
+from flowtimer.Phase import Phase
+
+class TestPhase:
+
+    def test_phase_initialization(self):
+        phase = Phase("Warm-up", 300)
+        assert phase.title == "Warm-up"
+        assert phase.duration == 300
+        assert phase.state == "initial"
+        assert phase.time_left == 300
+        
+    def test_phase_str_representation(self):
+        phase = Phase("Warm-up", 300)
+        expected_str = "-->Warm-up\nDuration=300\n"
+        assert str(phase) == expected_str
+
+    def test_phase_start(self):
+        phase = Phase("Warm-up", 300)
+        phase.start()
+        assert phase.state == "running"
+        assert phase.running() is True
+
+    def test_phase_pause(self):
+        phase = Phase("Warm-up", 300)
+        phase.start()
+        phase.pause()
+        assert phase.state == "paused"
+        assert phase.paused() is True
+
+    def test_phase_abort(self):
+        phase = Phase("Warm-up", 300)
+        phase.abort()
+        assert phase.state == "finished"
+        assert phase.finished() is True
+
+    def test_phase_tick(self):
+        phase = Phase("Warm-up", 300)
+        phase.start()
+        phase.tick(60)
+        assert phase.time_left == 240
+        assert phase.state == "running"
+
+    def test_phase_tick_to_completion(self):
+        phase = Phase("Warm-up", 300)
+        phase.start()
+        phase.tick(300)
+        assert phase.time_left == 0
+        assert phase.finished() is True
+
+    def test_phase_tick_beyond_completion(self):
+        phase = Phase("Warm-up", 300)
+        phase.start()
+        phase.tick(350)
+        assert phase.time_left == 0
