diff --git a/src/main/java/edu/ntnu/stud/cardgame/HandOfCards.java b/src/main/java/edu/ntnu/stud/cardgame/HandOfCards.java
index 55e271156a89ed225ae5fd6ae1a528d836b1e913..b3b96b9cfa51907a5efa5e47976ffa2f8dfbf7f7 100644
--- a/src/main/java/edu/ntnu/stud/cardgame/HandOfCards.java
+++ b/src/main/java/edu/ntnu/stud/cardgame/HandOfCards.java
@@ -23,21 +23,19 @@ public class HandOfCards {
   public int getSum() {
     return hand.stream()
         .mapToInt(PlayingCard::getFace)
-        .sum();
+        .reduce(0, Integer::sum);
   }
 
   public String findHearts() {
-    StringBuilder sb = new StringBuilder();
-
-    hand.stream()
+    String hearts = hand.stream()
         .map(PlayingCard::getAsString)
         .filter(s -> s.charAt(0) == 'H')
-        .forEach(sb::append);
+        .collect(Collectors.joining(" "));
 
-    if (sb.isEmpty()) {
+    if (hearts.isEmpty()) {
       return "No hearts";
     }
-    return sb.toString();
+    return hearts.trim();
   }
 
   public boolean containsQueenOfSpades() {
diff --git a/src/test/java/edu/ntnu/stud/cardgame/DeckOfCardsTest.java b/src/test/java/edu/ntnu/stud/cardgame/DeckOfCardsTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..401f48dbeb2b9fcdbd3592b07609d03e162414c1
--- /dev/null
+++ b/src/test/java/edu/ntnu/stud/cardgame/DeckOfCardsTest.java
@@ -0,0 +1,27 @@
+package edu.ntnu.stud.cardgame;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class DeckOfCardsTest {
+  DeckOfCards deck;
+
+  @BeforeEach
+  void setDeck() {
+    deck = new DeckOfCards();
+  }
+
+  @Nested
+  public class PositiveTests{
+    @Test
+    void testDeckFiller(){
+      assertEquals(deck.getDeck().size(), 52);
+      assertTrue(deck.getDeck().contains(new PlayingCard('H', 10)));
+      assertTrue(deck.getDeck().contains(new PlayingCard('D', 1)));
+      assertTrue(deck.getDeck().contains(new PlayingCard('C', 5)));
+    }
+  }
+}
diff --git a/src/test/java/edu/ntnu/stud/cardgame/HandOfCardsTest.java b/src/test/java/edu/ntnu/stud/cardgame/HandOfCardsTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..85362c013eabeed49351460506e7e3db01d0ce41
--- /dev/null
+++ b/src/test/java/edu/ntnu/stud/cardgame/HandOfCardsTest.java
@@ -0,0 +1,65 @@
+package edu.ntnu.stud.cardgame;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class HandOfCardsTest {
+  HandOfCards hand;
+  PlayingCard card1;
+  PlayingCard card2;
+  PlayingCard card3;
+  PlayingCard card4;
+
+  @BeforeEach
+  void setHand() {
+    hand = new HandOfCards();
+    card1 = new PlayingCard('H', 12);
+    card2 = new PlayingCard('D', 2);
+    card3 = new PlayingCard('C', 7);
+    card4 = new PlayingCard('S', 12);
+  }
+
+  @Nested
+  class PositiveTests {
+    @Test
+    void testAddCard() {
+      hand.addCard(card1);
+      assertTrue(hand.getHand().contains(card1));
+    }
+
+    @Test
+    void testGetSum() {
+      hand.addCard(card1);
+      hand.addCard(card2);
+      hand.addCard(card3);
+      assertEquals(hand.getSum(),21);
+    }
+
+    @Test
+    void testFindHearts() {
+      hand.addCard(card1);
+      assertEquals(hand.findHearts(), card1.getAsString());
+    }
+
+    @Test
+    void testContainsQueenOfSpades(){
+      assertFalse(hand.containsQueenOfSpades());
+      hand.addCard(card4);
+      assertTrue(hand.containsQueenOfSpades());
+    }
+
+    @Test
+    void testContains5Flush() {
+      assertFalse(hand.contains5Flush());
+
+      for (int i = 0; i<5; i++){
+        hand.addCard(card2);
+      }
+
+      assertTrue(hand.contains5Flush());
+    }
+  }
+}
diff --git a/src/test/java/edu/ntnu/stud/cardgame/PlayingCardTest.java b/src/test/java/edu/ntnu/stud/cardgame/PlayingCardTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a5ffc2832a98e5502470112279c437bc583f291
--- /dev/null
+++ b/src/test/java/edu/ntnu/stud/cardgame/PlayingCardTest.java
@@ -0,0 +1,35 @@
+package edu.ntnu.stud.cardgame;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+public class PlayingCardTest {
+  PlayingCard card1;
+  PlayingCard card2;
+  @BeforeEach
+  public void setUp() {
+    card1 = new PlayingCard('H', 3);
+  }
+
+  @Nested
+  public class PositiveTests {
+    @Test
+    void testGetAsString() {
+      assertEquals("H3", card1.getAsString());
+    }
+  }
+
+  @Nested
+  public class NegativeTests {
+    @Test
+    void testConstructor() {
+      assertThrows(IllegalArgumentException.class, () -> card2 = new PlayingCard('E', 10));
+      assertThrows(IllegalArgumentException.class, () -> card2 = new PlayingCard('D', 90));
+      assertThrows(IllegalArgumentException.class, () -> card2 = new PlayingCard('H', 0));
+    }
+  }
+}