public static void onFail(final ServerMemberManager manager, final Member member) {
        // To avoid null pointer judgments, pass in one NONE_EXCEPTION
        onFail(manager, member, ExceptionUtil.NONE_EXCEPTION);
    }
@Test
    void testMemberOnFailWhenReachMaxFailAccessCnt() {
        final Member remote = buildMember();
        mockMemberAddressInfos.add(remote.getAddress());
        remote.setState(NodeState.SUSPICIOUS);
        remote.setFailAccessCnt(2);
        MemberUtil.onFail(memberManager, remote);
        assertEquals(3, remote.getFailAccessCnt());
        assertEquals(NodeState.SUSPICIOUS, remote.getState());
        verify(memberManager, never()).notifyMemberChange(remote);
        assertTrue(mockMemberAddressInfos.isEmpty());
        MemberUtil.onFail(memberManager, remote);
        assertEquals(4, remote.getFailAccessCnt());
        assertEquals(NodeState.DOWN, remote.getState());
        verify(memberManager).notifyMemberChange(remote);
    }