我正在用phpunit测试php代码,我遇到了一个问题:我正在测试类:classClassName{publicfunctionMethodName(){//something$objectName=newObject();$variableName=$objectName->execute();//something}}我想创建对象的模拟。我不想调用真正的方法execute()。我不知道如何用phpunit做到这一点。我知道依赖注入(inject),但恕我直言,这种情况无法通过依赖注入(inject)解决。感谢您的回答。我为我的英语感到抱歉。 最佳答案
我正在寻求有关为我们基于JSONAPI的应用程序创建复杂测试的帮助。短问题场景:测试创建临时实体(用于比较)EntityManagerMock设置为等待persist($temporaryEntity)使用一些参数测试调用真实方法方法创建实体并尝试保存在模拟EM测试失败,因为时间改变了1秒我们尝试使用ClockMock但它仅适用于被调用的类/命名空间。我们的方法在其他命名空间中,实体在接下来的某个时间创建。我们正在寻找如何临时覆盖PHP平台\DateTime类的解决方案-或如何对项目中的所有namespace/类使用ClockMock的技术(但仅用于测试)。我们尝试修改基于Symfon
对于单元测试,我正在尝试验证是否有一种使用mockitoverify验证方法内部方法调用的方法?一个例子是:publicdelete(param){VideoService.deleteVideo(param);我可以检查delete是否被调用:verify(mock,times(1)).delete(param);是否还有一种方法可以检查内部方法,例如:验证(模拟,时间(1))。删除(参数)。VideoService.deleteVideo(参数); 最佳答案 你可以使用spy。publicclassMyVideoService{
这是一个例子:traitSender{defsend(Stringmsg){//dosomething}}classServiceimplementsSender{defmyMethod1(){send('Foo')myMethod2()}defmyMethod2(){}}我正在尝试测试服务类。但是,我想stub/模拟对特征(发送)提供的方法的调用?我尝试了几种不同的方法来stub/模拟发送方法,但没有成功://1Service.metaclass.send={Strings->//donothing}//2defservice=newMyService()service.metaCl
我第一次将Mockito与PowerMock一起使用,在以下行运行以下代码时出现错误:MockitoAnnotations.initMocks(SearchTest.class);错误是:java.lang.ExceptionInInitializerErroratorg.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter.(ConditionalStackTraceFilter.java:17)atorg.mockito.exceptions.base.MockitoException.filterSt
我正在使用与java.io.File实例一起使用的第三方库。我想在我的单元测试中使用这个库,但我不希望它在磁盘上创建文件。我的第一个想法是使用JimFs模拟文件系统,但它不支持java.io.File。我的第二个想法是使用一些模拟框架模拟File并将调用委托(delegate)给JimFs,但不知道这是否可行。是否有一些使用虚拟java.io.File的解决方案? 最佳答案 您可以使用JUnitTemporaryFolder规则轻松创建在测试方法完成后删除的临时文件。 关于java-使用
我正在尝试使用EasyMock模拟以下JNA调用convInterface=(ConvInterface)Native.loadLibrary(libraryLocation,ConvInterface.class);使用这个测试方法@TestpublicvoidtestLib(){Capture>myClassCapture=EasyMock.newCapture();PowerMock.mockStatic(Native.class);EasyMock.expect(Native.loadLibrary(EasyMock.isA(String.class),EasyMock.cap
我无法模拟一个类(使用PowerMock的createMock方法)。此类正在其构造函数中创建ThreadSafeClientConnManager类的对象。我在调用传递我的类名的createMock方法的那一行出现异常。以下是异常堆栈跟踪。但是,如果我运行集成测试,它工作正常。可能是什么问题?[junit]Causedby:java.lang.IllegalStateException:FailureinitializingdefaultSSLcontext[junit]atorg.apache.http.conn.ssl.SSLSocketFactory.createDefault
我正在使用SpringBoot1.5.9,我们有一个与另一个微服务连接的微服务。对于集成测试和开发(开发人员计算机),我想模拟/stub为另一个微服务所做的其余调用。对于单元/集成测试,这个问题已经回答了很多次:WireMock、MockBean和MockRestServiceServer是很好的工具。但为了发展,我正在尝试找出最佳方法。为什么?启动实际微服务所依赖的每个微服务都是一个问题。因此,我们的想法是让微服务独立并启动,而无需在开发人员的机器或其他地方运行任何额外的服务器。因此,一个简单的“mvnspring-bootrun”就足以启动我的微服务并正常工作,而无需担心其他微服务
这是一个合理性检查,因为我发现这在我们的代码中是正确的。与我们的功能代码不同,由于状态设置、组合案例分析和模拟/伪造邻居/合作者/听众/等,有状态GUI的测试具有不幸的权重。我错过了什么吗?感谢您的反馈。注意事项:测试在JVM中运行,一切都是POJO。到目前为止,我们已经通过增加单元大小进行了一些简化:测试粘在一起的更多部分。新笔记:我们正在使用jUnit和Mockito。 最佳答案 避免代码重复。应提取常见的设置代码和操作寻找层次结构。不要写一个巨大的测试场景。将公共(public)行组合在一起并将它们提取到一个有意义的命名方法中