我需要模擬以下枚舉:使用Mockito嘲笑枚舉?
枚舉
public enum PersonStatus
{
WORKING,
HOLIDAY,
SICK
}
這是因爲它是在我測試下面的類中:
類測試:
public interface PersonRepository extends CrudRepository<Person, Integer>
{
List<Person> findByStatus(PersonStatus personStatus);
}
這是我目前的測試誘惑:
電流測試:
public class PersonRepositoryTest {
private final Logger LOGGER = LoggerFactory.getLogger(PersonRepositoryTest.class);
//Mock the PersonRepository class
@Mock
private PersonRepository PersonRepository;
@Mock
private PersonStatus personStatus;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
assertThat(PersonRepository, notNullValue());
assertThat(PersonStatus, notNullValue());
}
@Test
public void testFindByStatus() throws ParseException {
List<Person> personlist = PersonRepository.findByStatus(personStatus);
assertThat(personlist, notNullValue());
}
}
這給以下錯誤:
錯誤:
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class PersonStatus
Mockito cannot mock/spy following:
- final classes
- anonymous classes
- primitive types
我怎樣才能解決這個問題?
你確定*你需要模擬'PersonStatus'嗎?你不能只使用實際的實例嗎? – khelwood
我不認爲你想嘲笑枚舉 - 你想在你的測試中傳遞枚舉的各種值,並檢查結果是否如預期。 – assylias
@assylias請提供答案,顯示如何做 – java123999