代码之家  ›  专栏  ›  技术社区  ›  sroko1

测试失败,出现问题。isThrownBy()

  •  0
  • sroko1  · 技术社区  · 2 年前

    我得到了->JAVAlang.AssertionError: 希望代码会引发一个可丢弃的问题。

    在动物博物馆。动物服务测试。应该通过AnimalServerNotExist(AnimalServiceTest.java:60) 在 JAVAbase/jdk。内部的反映NativeMethodAccessorImpl。调用0(本机) 方法)在 JAVAbase/jdk。内部的反映NativeMethodAccessorImpl。调用(NativeMethodAccessorImpl.java:77) 在 JAVAbase/jdk。内部的反映DelegatingMethodAccessorImpl。调用(DelegatingMethodAccessorImpl.java:43) 在爪哇。base/java。朗,反思一下。方法调用(Method.java:568) 组织。朱尼特。站台平民util。反光片。invokeMethod(ReflectionUtils.java:725) 在 组织。朱尼特。木星发动机处决方法调用。继续(MethodInvocation.java:60) 在 组织。朱尼特。木星发动机处决InvocationInterceptorChain$ValidatingInvocation。继续(InvocationInterceptorChain.java:131) 在 组织。朱尼特。木星发动机扩大TimeoutExtension。拦截(TimeoutExtension.java:149) 在 组织。朱尼特。木星发动机扩大TimeoutExtension。interceptTestableMethod(TimeoutExtension.java:140) 在 组织。朱尼特。木星发动机扩大TimeoutExtension。interceptTestMethod(TimeoutExtension.java:84) 在 组织。朱尼特。木星发动机处决ExecutableInvoker$ReflectiveInterceptorCall。lambda$ofVoidMethod$0(ExecutableInvoker.java:115) 在 组织。朱尼特。木星发动机处决可执行调用程序。lambda$invoke$0(ExecutableInvoker.java:105) 在 组织。朱尼特。木星发动机处决调用侦听器链$InterceptedInviation。继续(InvocationInterceptorChain.java:106) 在 组织。朱尼特。木星发动机处决这是一条链。继续(InvocationInterceptorChain.java:64) 在 组织。朱尼特。木星发动机处决这是一条链。chainAndInvoke(InvocationInterceptorChain.java:45) 在 组织。朱尼特。木星发动机处决这是一条链。invoke(InvocationInterceptorChain.java:37) 在 组织。朱尼特。木星发动机处决可执行调用程序。invoke(ExecutableInvoker.java:104) 在 组织。朱尼特。木星发动机处决可执行调用程序。invoke(ExecutableInvoker.java:98) 在 组织。朱尼特。木星发动机描述符。TestMethodTestDescriptor。lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) 在 组织。朱尼特。站台发动机支持等级制的一次性收藏家。执行(ThrowableCollector.java:73) 在 组织。朱尼特。木星发动机描述符。TestMethodTestDescriptor。invokeTestMethod(TestMethodTestDescriptor.java:210) 在 组织。朱尼特。木星发动机描述符。TestMethodTestDescriptor。执行(TestMethodTestDescriptor.java:135) 在 组织。朱尼特。木星发动机描述符。TestMethodTestDescriptor。执行(TestMethodTestDescriptor.java:66) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$ExecuteUrsive$6(NodeTestTask.java:151) 在 组织。朱尼特。站台发动机支持等级制的一次性收藏家。执行(ThrowableCollector.java:73) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$executecurively$8(NodeTestTask.java:141) 在 组织。朱尼特。站台发动机支持等级制的节点。大约(Node.java:137) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$executecurively$9(NodeTestTask.java:139) 在 组织。朱尼特。站台发动机支持等级制的一次性收藏家。执行(ThrowableCollector.java:73) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。可执行的(NodeTestTask.java:138) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。执行(NodeTestTask.java:95) 在爪哇。base/java。util。ArrayList。forEach(ArrayList.java:1511)位于 组织。朱尼特。站台发动机支持等级制的Samethread HierarchicalTestExecutorService。invokeAll(SamethreadHierarchycalTestExecutorService.java:41) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$executecurively$6(NodeTestTask.java:155) 在 组织。朱尼特。站台发动机支持等级制的一次性收藏家。执行(ThrowableCollector.java:73) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$executecurively$8(NodeTestTask.java:141) 在 组织。朱尼特。站台发动机支持等级制的节点。大约(Node.java:137) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$executecurively$9(NodeTestTask.java:139) 在 组织。朱尼特。站台发动机支持等级制的一次性收藏家。执行(ThrowableCollector.java:73) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。可执行的(NodeTestTask.java:138) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。执行(NodeTestTask.java:95) 在爪哇。base/java。util。ArrayList。forEach(ArrayList.java:1511)位于 组织。朱尼特。站台发动机支持等级制的Samethread HierarchicalTestExecutorService。invokeAll(SamethreadHierarchycalTestExecutorService.java:41) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$executecurively$6(NodeTestTask.java:155) 在 组织。朱尼特。站台发动机支持等级制的一次性收藏家。执行(ThrowableCollector.java:73) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$executecurively$8(NodeTestTask.java:141) 在 组织。朱尼特。站台发动机支持等级制的节点。大约(Node.java:137) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。lambda$executecurively$9(NodeTestTask.java:139) 在 组织。朱尼特。站台发动机支持等级制的一次性收藏家。执行(ThrowableCollector.java:73) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。可执行的(NodeTestTask.java:138) 在 组织。朱尼特。站台发动机支持等级制的节点测试任务。执行(NodeTestTask.java:95) 在 组织。朱尼特。站台发动机支持等级制的Samethread HierarchicalTestExecutorService。提交(SamethreadHierarchycalTestExecutorService.java:35) 在 在 组织。朱尼特。站台发动机支持等级制的分层测试引擎。执行(HierarchycalTestEngine.java:54) 在 组织。朱尼特。站台发射器。果心引擎执行器。执行(EngineeExecutionOrchestrator.java:107) 在 组织。朱尼特。站台发射器。果心引擎执行器。执行(EngineeExecutionOrchestrator.java:88) 在 组织。朱尼特。站台发射器。果心引擎执行器。lambda$execute$0(engineexecuteonorchestrator.java:54) 在 组织。朱尼特。站台发射器。果心引擎执行器。WithIntercedStreams(EngineeExecutionOrchestrator.java:67) 在 组织。朱尼特。站台发射器。果心引擎执行器。执行(EngineeExecutionOrchestrator.java:52) 在 组织。朱尼特。站台发射器。果心DefaultLauncher。执行(DefaultLauncher.java:114) 在 组织。朱尼特。站台发射器。果心DefaultLauncher。执行(DefaultLauncher.java:86) 在 组织。朱尼特。站台发射器。果心DefaultLauncher会话$DelegatingLauncher。执行(DefaultLauncherSession.java:86) 在 组织。朱尼特。站台发射器。果心SessionPerRequestLauncher。执行(SessionPerRequestLauncher.java:53) 在 通用域名格式。intellij。junit5。JUnit5IdeaTestRunner。startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) 在 通用域名格式。intellij。朱尼特。IdeaTestRunner$中继器$1。执行(IdeaTestRunner.java:38) 在 通用域名格式。intellij。rt.执行。朱尼特。测试重复。重复(TestsRepeater.java:11) 在 在 通用域名格式。intellij。朱尼特。JUnitStarter。prepareStreamsAndStart(JUnitStarter.java:235) 在com上。intellij。朱尼特。JUnitStarter。main(JUnitStarter.java:54)

    这是我的测试课->

    @ExtendWith(MockitoExtension.class)
    class AnimalServiceTest {
    
    private static final long ANIMAL_ID = 1L;
    private static final String ANIMAL_TYPE = "dog";
    private static final Animal ANIMAL = new Animal(ANIMAL_ID, ANIMAL_TYPE,
            "Max");
    @Mock
    private AnimalRepository animalRepository;
    @InjectMocks
    private AnimalService animalService;
    

    以及方法->

    @Test
    void shouldThrowWhenAnimalDoesNotExist() {
        long ANIMAL_ID = 2L;
          when(animalRepository.findById(ANIMAL_ID)).thenReturn(Optional.empty());
         assertThatExceptionOfType(NoSuchElementException.class)
                 .isThrownBy(() ->
                        animalService.getAnimalById(ANIMAL_ID));
         verify(animalRepository).findById(ANIMAL_ID);
         verifyNoMoreInteractions(animalRepository);
    }
    

    我没有主意了,不想寻求帮助。

    0 回复  |  直到 2 年前