プロジェクトでjunit5を使ったユニットテストを行おうと思っております。
今までテストコードをまともに書いたことが無かったので、どのような観点で書いていけばいいのかが分かりません。
例えばHashMapのget(), put()をテストする場合で書いてみました。

この場合はこのようなテストコードでいいのでしょうか?
ジェネリクスを意識して別の型でも試したり、他の値でも試したほうがよいのでしょうか?

class HashMapTest {

    private Map<String, String> stringHashMap;

    private Map<String, String> immutableMap;

    @DisplayName("テスト毎に初期化")
    @BeforeEach
    void init() {
        stringHashMap = new HashMap<>();
        stringHashMap.put("alice", "hoge");
        stringHashMap.put("bob", "fuga");
        immutableMap = Map.of();
    }

    @DisplayName("値取得のテスト")
    @Test
    void getTest() {
        assertAll("MapGetTest",
                () -> assertEquals(stringHashMap.get("alice"), "hoge"),
                () -> assertNotEquals(stringHashMap.get("bob"), "piyo"));

    }

    @DisplayName("値設定のテスト")
    @Test
    void putTest() {
        stringHashMap.put("carol", "piyo");
        assertAll("MapPutTest",
                () -> assertEquals(stringHashMap.get("carol"), "piyo"),
                () -> assertNotEquals(stringHashMap.get("dave"), "hoge"));
    }

    @DisplayName("不変Mapの例外テスト")
    @Test
    void immutableTest() {
        assertThrows(UnsupportedOperationException.class, () -> immutableMap.put("key", "value"));
    }
}