任务mockableAndroidJar的执行失败
当我尝试构建应用程序时,我会得到此例外: Execution failed for task ':app:mockableAndroidJar'. > java.io.EOFException: Unexpected end of ZLIB input stream 这是结论的片段: Caused by: org.gradle.api.UncheckedIOException: java.io.EOFException: Unexpected end of ZLIB input stream at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:43) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:78) at o
12 2024-04-04
编程技术问答社区
Mockito WrongTypeOfReturnValue。findById()不能返回布尔值。
我正在尝试使用Mockito: 来测试以下方法 @Override public List search(String username, Integer id) { List emptySearchResult = new ArrayList(); if(id != null && !username.equals("") ) { if(!this.petRepository.findById(id).isPresent()){ return emptySearchResult; } if(!this.appUserRepository.findByUsername(username).isPresent()){ return emptySearchResult; } Pet pet = this.petRepository.findById(id).orElse
8 2024-04-01
编程技术问答社区
如何使用Mockito来模拟Context?
我正在使用上下文来访问Wifimanager和BluetoothManager等系统级服务.如何使用Mockito模拟此getApplicationContext()? 解决方案 让我们看一下以下课程:如果您需要更多洞察力,请检查官方测试基础页面 P> 其他解决方案 Context context = mock(Context.class); 其他解决方案 如果要使用Kotlin和Mockito获得上下文,则可以以以下方式进行: mock(Context::class.java)
36 2024-04-01
编程技术问答社区
Junit测试在包上运行时失败,但在文件上运行时成功
大更新: 有人遇到过吗? 我在Maven项目中使用Junit 4.5和Mockito 1.7. 我在软件包TestCaseFolder中有testcasea.java. 如果我打开testcasea.java,请右键单击代码,选择"运行为" - " junit test"),则可以. 但是,如果我右键单击软件包,请选择"运行为" - " Junit Test",它将失败: org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Misplaced argument matcher detected! Somewhere before this line you probably misused Mockito argument matchers. For example you might have used anyObject() argument matcher outside of verif
16 2024-03-27
编程技术问答社区
为什么 @Autowired 会引发 UnsatisfiedDependencyException,即使该类没有实现任何接口?
这是我要测试的类 @Component public class PermissionCheck { @Autowired private MyEntityRepository myEntityRepository; public boolean hasPermission(int myEntityID) { MyEntity myEntity = myEntityRepository.findById(myEntityId); return myEntity != null; } } 这是测试类 @RunWith(SpringRunner.class) public class PermissionCheckTests { @Autowired // you need to autowire private Permi
22 2024-03-21
编程技术问答社区
Spring: 对同时有字段和构造函数注入的类进行单元测试
我有以下类的设置. class Base { @Autowired private BaseService service; //No getters & setters .... } @Component class Child extends Base { private final SomeOtherService otherService; @Autowired Child(SomeOtherService otherService) { this.otherService = otherService; } } 我正在为Child类编写单元测试. 如果我使用@InjectMocks,则otherService出现为null.如果我使用,则在测试设置中的Child类的构造函数,则Base类中的字段出现为null. 我知道有关现场注射是邪恶的所有论点,但是我更感兴趣地知道是否有办法解决此问题而不改变方式Base和
20 2024-03-21
编程技术问答社区
如何模拟一个Spring Bean的自动连接列表?
我已经阅读了很多有关如何模拟春季豆及其自动田地的文章.但是,关于自动的豆类列表,我找不到任何东西. 具体问题 我有一个叫做FormValidatorManager的课程.此类循环通过几个实现IFormValidator的验证器. @Component public class FormValidatorManager implements IValidatorManager { @Autowired private List validators; @Override public final IFieldError validate(ColumnDTO columnToValidate, String sentValue) { String loweredColName = columnToValidate.getName().toLowerCase(); IF
22 2024-03-21
编程技术问答社区
Mockito @InjectMocks是如何工作的?
这是我的问题: 我有几个Web服务类,可以测试所有这些都从通用服务中继承其方法.我认为我没有为每个测试编写一个单位测试,而是可以通过功能区域将测试套件分解(即三组测试方法,每组依赖于不同的基础DAO方法调用). 我建议要做的是: @Mock StateDAO mockedStateDao; @Mock CountyDAO mockedCountyDao; @Mock VisitorDAO mockedVisitorDao; 然后致电: @InjectMocks CountyServiceImpl countyService = new CountyServiceImpl(); @InjectMocks StateServiceImpl stateService = new StateServiceImpl(); @InjectMocks VisitorServiceImpl visi
28 2024-03-21
编程技术问答社区
如何在Spring中用Mockito模拟一个自动连接的@Value字段?
我正在使用弹簧3.1.4.Release和Mockito 1.9.5.在我的春季课上,我有: @Value("#{myProps['default.url']}") private String defaultUrl; @Value("#{myProps['default.password']}") private String defaultrPassword; // ... 我目前已经设置了Junit测试: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "classpath:test-context.xml" }) public class MyTest { 我想为我的" defaulturl"字段模拟一个值.请注意,我不想为其他字段模拟值 - 我想保留这些值,只保留" defaulturl"字段.另请注意,我没有明确的"设置"方法(例如setDefaultUrl),我不想仅
22 2024-03-21
编程技术问答社区
如何在Android Studio的单元测试中使用Mockito/Hamcrest?
我希望能够在Android Studio中进行单元测试和仪器测试,并在其中使用Mockito. 我正在使用新方法进行Android Studio 0.8的测试.这是: 与Gradle建造 使用官方的Android API进行测试(ActivityInstrumentationTestCase2等) 在应用程序目录中进行测试,而不是单独的模块 在Android Studio中启动测试作为" Android测试"运行配置 我如何在测试中编写代码,这些代码仅取决于仅用于测试的库,例如莫克托(Mockito)或hamcrest? 我想在编译和运行测试时包括这些库,但要避免将其导出到已发布的.APK. . in 我已经读到,我应该添加依赖项为: dependencies { .... testCompile "org.mockito:mockito-core:1.9.5" } 但是当运行时我得到: 构建脚本错误,发现了不支持的Gra
10 2024-03-21
编程技术问答社区
Mockito:等待符合参数的调用
我正在编写硒测试,并使用Mockito验证服务器行为.具体来说,当单击按钮时,我想确保页面控制器调用我嘲笑的依赖项上的特定方法. 因为这是硒测试,所以我需要等待在另一个线程中调用模拟,所以我使用Mockito超时. verify(myMock, timeout(5000).times(1)).myMethod("expectedArg"); 我遇到的麻烦是MyMethod被称为多次...而不是等待与预期参数相匹配的调用,而是超时只等待第一个调用. 如果我使用thread.sleep(50000)而不是超时(50000),则可以按预期工作...但是我希望避免使用. 如何等待使用预期输入调用myMethod? 解决方案 如果您能够设置固定数量的预期电话,则可以使用ArgumentCaptor: 来完成. import static org.hamcrest.CoreMatchers.hasItem; @Captor ArgumentCaptor
14 2024-03-18
编程技术问答社区
MockMVC对异步服务进行后期测试
我需要测试一个调用异步服务的控制器. 控制器代码 @RequestMapping(value = "/path", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity massiveImport(HttpServletRequest request) { try { service.asyncMethod(request); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity(new Result(e.getMessage()), HttpStatus.BAD_REQUEST); } return new Response
26 2024-03-18
编程技术问答社区
如何在Mockito中使用软断言?
我知道我们可以使用软主张立即失败单位测试. 如何将它们与Mockito断言一起使用?或者如果他们不能,Mockito是否提供任何替代方案? 代码样本 verify(mock).isMethod1(); verify(mock, times(1)).callMethod2(any(StringBuilder.class)); verify(mock, never()).callMethod3(any(StringBuilder.class)); verify(mock, never()).callMethod4(any(String.class)); 问题 在此代码段中 如果验证将失败,那么测试将失败,将失败,将中止剩余的verify语句(它可能需要多次测试运行,直到显示本单元测试中的所有失败,这是Time-time-消费). 解决方案 自Mockito 2.1.0以来" rel =" nofollow noreferrer"> verificatio
14 2024-03-17
编程技术问答社区
Junit在等待和处理异常后断言了一些事情
首先和第二个通话的方法: public void foo() throws Exception 测试: @test public void testFooThrowsAtFirstAndSecondTime(){ boolean thrown; try { foo(); } catch (Exception e) { thrown = true; } assertTrue(thrown); thrown = false; try { foo(); } catch (Exception e) { thrown = true; } assertTrue(thrown); foo(); } 您能帮我找到更好的解决方案吗? 将Mockito用于更好的解决方案也是可以接受的. 更好,我的意思是,如果我可以避免尝试/捕捉,甚至可
22 2024-03-17
编程技术问答社区
模拟程序JoinPoint签名
我试图嘲笑一个程序Joinpoint类,并且很难嘲笑一种方法. 这是调用模拟类的代码: ... // ProceedingJoinPoint joinPoint Object targetObject = joinPoint.getTarget(); try { MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); ... ... 这是我到目前为止的嘲笑课程的尝试... accountService = new AccountService(); ProceedingJoinPoint joinPoint = mock(ProceedingJoinPoint.class); when(joinPoint.getTarget()).thenReturn(accountService
40 2024-03-16
编程技术问答社区
如何在Spring MVC应用程序中测试Aspect
我有一个春季MVC应用 @Component @Aspect public class ControllerExceptionAspect { private Logger logger; public ControllerExceptionAspect() { logger = Logger.getLogger(ControllerExceptionAspect.class); } public ControllerExceptionAspect(Logger logger) { this.logger = logger; } // Catching all exceptions from all methods in all controllers classes @AfterThrowing(pointcut = "execution(* com.my.package..controll
6 2024-03-16
编程技术问答社区
AspectJ的集成测试
我正在尝试为自定义方面编写集成测试.这是方面类摘要. @Aspect @Component public class SampleAspect { private static Logger log = LoggerFactory.getLogger(SampleAspect.class); private int count; public int getCount(){ return count; } public void setCount(){ this.count= count; } @Around("execution(* org.springframework.data.mongodb.core.MongoOperations.*(..)) || execution(* org.springframework.web.client.RestOperations.*(..))")
14 2024-03-16
编程技术问答社区
用于AspectJ的JUnit测试
我正在尝试为自定义方面编写JUNIT测试.这是方面类摘要: @Aspect @Component public class SampleAspect { private static Logger log = LoggerFactory.getLogger(SampleAspect.class); @Around("execution(* org.springframework.data.mongodb.core.MongoOperations.*(..)) || execution(* org.springframework.web.client.RestOperations.*(..))") public Object intercept(final ProceedingJoinPoint point) throws Throwable { logger.info("invoked Cutom aspect"); r
16 2024-03-16
编程技术问答社区
mockito ArrayList<String>问题
我有一种方法是试图进行单位测试的方法.此方法将参数作为阵列列表,并使用它进行操作.我试图定义的模拟是: ArrayList mocked = mock(ArrayList.class); 给出[未检查]未检查的转换"警告. ArrayList mocked = mock(ArrayList.class); 给我一​​个错误. 有人愿意启发我关于我做错了什么? 解决方案 替代方法是使用@mock注释以来,莫科托可以使用类型反射来查找通用类型: public class MyTest { @Mock private ArrayList mockArrayList; ... public void setUp() { MockitoAnnotations.initMocks(this); } public void testMyTest() {
6 2024-03-04
编程技术问答社区
Mockito匹配任何类的参数
有没有办法匹配以下样本例程的任何类参数? class A { public B method(Class a) {} } 我如何总是返回new B()无论哪个类都传递到method中?以下尝试仅适用于匹配A的特定情况. A a = new A(); B b = new B(); when(a.method(eq(A.class))).thenReturn(b); 编辑:一种解决方案是 (Class) any(Class.class) 解决方案 另外两种方法(请参阅我对@Tomasz Nurkiewicz的上一个答案的评论): 第一个依赖于编译器根本不会让您通过错误类型的事实: when(a.method(any(Class.class))).thenReturn(b); 您会失去确切的键入(Class),但它可能会按照您需要工作. 第二个要多得多,但是如果您确实想确保
12 2024-03-03
编程技术问答社区