- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi đang cố gắng giả lập RestOperation để đưa ra một ngoại lệ, nhưng tôi nhận được MockitoException thay vì lấy ngoại lệ thích hợp. Điều này thật kỳ lạ đối với tôi vì khi tôi cố gắng kiểm tra con đường hạnh phúc, hầu như lệnh gọi giả tương tự đều hoạt động tốt. Có gì sai với điều này:
Mô phỏng công việc:
Mockito.when(restOperations.exchange(
Mockito.anyString(), Mockito.any(), Mockito.>any(),
Mockito.<>>any())).thenReturn(ResponseEntity mới<>(userByRoleHolder, HttpStatus.OK));
Ném giả MockitoException:
Mockito.when(restOperations.exchange(
Mockito.anyString(), Mockito.any(), Mockito.>any(),
Mockito.<>>any())).thenThrow(new ConnectException("Kiểm tra ngoại lệ"));
Đây là cách thực hiện phương pháp của tôi:
ResponseEntity thực thể = null;
thử {
thực thể = RestOperations.exchange(userProfileUrl, HttpMethod.GET,
được ủy quyềnHttpEntityFactory.getAuthorizedHttpEntity(null), UserByRoleHolder.class);
} bắt (RestClientException e) {
ném ConnectException mới (e.getMessage());
}
trả về thực thể.getBody();
Dấu vết ngăn xếp:
Ngoại lệ không mong đợi, được mong đợi nhưng lại là
java.lang.Exception: Ngoại lệ không mong đợi, được mong đợi nhưng lại là
tại org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:28)
tại org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
tại org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
tại org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
tại org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
tại org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
tại org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
tại org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
tại org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
tại org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
tại org.junit.runners.ParentRunner.run(ParentRunner.java:363)
tại org.mockito.internal.runners.JUnit45AndHigherRunnerImpl.run(JUnit45AndHigherRunnerImpl.java:37)
tại org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:62)
tại org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:86)
tại org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:49)
tại org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:69)
tại org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:48)
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.lang.reflect.Method.invoke(Method.java:497)
tại org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
tại org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
tại org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
tại org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
tại com.sun.proxy.$Proxy2.processTestClass(Không rõ nguồn)
tại org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:105)
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.lang.reflect.Method.invoke(Method.java:497)
tại org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
tại org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
tại org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:360)
tại org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
tại java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
tại java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Nguyên nhân là do: org.mockito.Exceptions.base.MockitoException:
Ngoại lệ đã chọn không hợp lệ đối với phương pháp này!
Không hợp lệ: java.net.ConnectException: Kiểm tra ngoại lệ
tại com.stanleyblackanddecker.toolboxcore.gateway.AuthGatewayTest.testGetAllUsersNoAuthPresent(AuthGatewayTest.java:215)
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.lang.reflect.Method.invoke(Method.java:497)
tại org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
tại org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
tại org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
tại org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
tại org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:19)
... 37 thêm
câu trả lời hay nhất
Nguyên nhân là do: org.mockito.Exceptions.base.MockitoException: Ngoại lệ đã kiểm tra không hợp lệ đối với phương pháp này! Không hợp lệ: java.net.ConnectException: Ngoại lệ kiểm tra
Như thông báo ngoại lệ đã nói (và được nêu trong phần bình luận), bạn phải ném RestClientNgoại lệ
,而不是 Kết nối ngoại lệ
:
Mockito.when(restOperations.exchange(
Mockito.anyString(), Mockito.any(), Mockito.>any(),
Mockito.<>>any())).thenThrow(new RestClientException("Kiểm tra ngoại lệ"));
Bạn nhận được thông báo lỗi này vì phương pháp trao đổi
tuyên bố rằng không có ngoại lệ nào được ném ra và Kết nối ngoại lệ
Đúng ngoại lệ được kiểm tra (tức là phải khai báo khi ném).
Về java - Mockito thenThrow ném ngoại lệ mockito, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/31914632/
Tôi đang phải đối mặt với một vấn đề kỳ lạ. Về cơ bản, khi tôi chạy thử nghiệm Mockito một cách bình thường, tức là "chạy dưới dạng thử nghiệm Junit", nó sẽ báo lỗi sau. Ai đó có thể giúp tôi xin vui lòng lỗi của tôi là gì? Đã nhận được lỗi: java.lan
Tôi đang sử dụng Mockito cùng với mockito-inline để mô phỏng các phương thức tĩnh. Tôi đang cố gắng áp dụng doNothing hoặc hành vi tương tự cho phương thức void tĩnh. Cách giải quyết sau đây có hiệu quả, nhưng tôi nghĩ nên có cách thuận tiện hơn
Tôi đang cố gắng xác minh rằng lớp tôi đang kiểm tra gọi đúng phương thức của lớp phụ thuộc. Vì vậy, tôi đang cố gắng khớp các tham số của phương thức, nhưng tôi không thực sự quan tâm đến các giá trị thực tế trong thử nghiệm này vì tôi không muốn thử nghiệm của mình bị giòn. Tuy nhiên, tôi gặp khó khăn khi thiết lập nó vì Mockito
Tôi đang viết bài kiểm tra đơn vị bằng Mockito và tôi gặp sự cố khi mô phỏng một lớp được chèn. Vấn đề là hai lớp được chèn có cùng loại, chỉ được phân biệt bằng chú thích @Qualifier của chúng. Nếu tôi cố gắng đơn giản
Trong bài tập đơn giản sau đây để khẳng định, tôi mong đợi là 1 nhưng lại nhận được 0. Tại sao tôi lại thấy hành vi này? lớp công khai MockitoTest { POJO mockedPojo;
Tôi đang tạo một ứng dụng khách giả chung để kiểm tra các tương tác HTTP. Để làm được điều này, tôi muốn có thể phản hồi nhiều lần bằng cùng một phương pháp. Với cách chế nhạo thông thường, đây không phải là vấn đề: when(mock.execute(any(), Any(), Any()))
Tôi cần mô phỏng phương thức lớp trên toàn cầu. Ý tôi là, tôi không thể tạo các đối tượng giả và các phương thức sơ khai. API của tôi không lấy đối tượng này làm tham số, vì vậy tôi không thể chuyển nó trong lệnh gọi hàm, nhưng các đối tượng của lớp này được tạo trong các hàm này và được sử dụng ở đó. đó là lý do tại sao
Tôi đang cố gắng sử dụng khung Mockito 2.18.3 để mô phỏng lớp cuối cùng được cung cấp trong thư viện nội bộ của công ty chúng tôi, rất tiếc là chúng tôi không có quyền truy cập để thay đổi mã trong thư viện. Nhưng bất cứ khi nào tôi chạy, tôi gặp lỗi sau: java.lang.NoClassD
Sau khi nghiên cứu framework thử nghiệm mockito và học powermock, tôi chợt tìm thấy một framework tên là powermockito mà tôi không thể hiểu được. Có ai có thể cho tôi biết sự khác biệt giữa ba công cụ kiểm tra này không? Câu trả lời hay nhất: Mockito là một khung mô phỏng tiêu chuẩn thị trường với
Tôi muốn bỏ qua việc kiểm tra một trong các tham số trong lệnh gọi xác thực. Vì vậy, đối với: def allowMockitoVerify=Mockito.verify(msg,atLeastOnce()).handle(1st param,,3r
Để mô phỏng các lệnh gọi biến/phương thức cục bộ trên các đối tượng cục bộ được xây dựng bên trong phương thức đang thử nghiệm, chúng tôi hiện đang sử dụng thư viện PowerMockito. Chúng tôi đang cố gắng đánh giá xem liệu chúng tôi có thể làm điều tương tự bằng mockito-inline hay không (phiên bản 3.7.7)
Tôi đang nghĩ, nếu trong phương thức @Before tôi đang khởi tạo đối tượng giả, tôi có nên hủy đăng ký nó trong @After không? Hay điều đó sẽ là dư thừa? Tại sao? Câu trả lời hay nhất Không, JUnit sẽ tạo bài kiểm tra mới cho từng phương pháp kiểm tra
Tôi muốn sử dụng Mockito để xác minh xem tham số chuỗi có đáp ứng hai điều kiện hay không: verify(mockClass).doSomething(Matchers.startsWith("prefix"));
Nếu tôi tạo một bản mô phỏng như thế này khi(servicesTestEnv.mockUserProfileAndPortfolioTransactionRepository.get(servicesTestE
Khi sử dụng Mockito tôi gặp phải vấn đề sau: Mockito.when(restOperationMock.exchange( Mockito.anyString(), M
Tôi muốn biết liệu điều được mô tả có khả thi hay không và cách thực hiện. Tôi biết bạn có thể gọi phương thức ban đầu và sau đó thực hiện câu trả lời như sau: when(người trình bày, "myMethod").doAnswer() nhưng tôi muốn sắp xếp chúng theo cách khác và thực hiện trước
Tôi đang cố gắng tìm hiểu cách hoạt động của org.mockito.AdditionalMatchers nhưng tôi không thành công. Tại sao thử nghiệm này thất bại? nhập org.hamcrest.CoreMatchers tĩnh
Có ai biết cách sử dụng Mockito để viết các trường hợp kiểm thử đơn vị cho ATG không? Tôi đã xem qua cuộc thảo luận sau đây khi đang xem xét - Kiểm tra đơn vị tự động để phát triển ATG và Sử dụng PowerM
Tôi muốn biết liệu điều được mô tả có khả thi hay không và cách thực hiện. Tôi biết bạn có thể gọi phương thức ban đầu và sau đó thực hiện câu trả lời như sau: when(người trình bày, "myMethod").doAnswer() nhưng tôi muốn sắp xếp chúng theo cách khác và thực hiện trước
Tôi có giao diện CatalogVersionService sau đây hiển thị một số dịch vụ. Tôi cũng có một bài kiểm tra đơn vị mô phỏng giao diện này bằng Mockito như thế này: Cat
Tôi là một lập trình viên xuất sắc, rất giỏi!