草庐IT

DexMaker-Mockito

全部标签

java - 无法在 Eclipse 中调试 Mockito/JUnit 代码,仅适用于 JUnit

我的JUnit测试运行良好。将Mockito添加到我的构建中,我尝试在我的JUnit测试中放置一个断点,该测试使用Mockito模拟一些公共(public)方法。当我尝试在类上运行调试器时,出现错误“由于缺少行号属性,无法在XXX中安装断点。修改编译器选项以生成行号属性。”我检查了我的编译器并选择了生成行号。 最佳答案 您看到的异常是由于尝试调试由mock()函数创建的动态生成的空模拟方法引起的。从你的问题来看,你似乎真的想使用部分模拟而不是完整模拟,其中只有一些方法被模拟,其余的调用被委托(delegate)给真正的实现。要创建部

java - EasyMock 中 Mockito.spy/doReturn 的类比是什么?

想象一下,我有以下类(class):publicclassTestClass{publicclassIndex{}publicclassIndexData{privatefinalIndexindex;privatefinalReentrantReadWriteLocklock=newReentrantReadWriteLock();publicIndexData(finalIndexindex){super();this.index=index;}publicIndexgetIndex(){returnindex;}publicLockgetReadLock(){returnlock

java - Mockito 在创建模拟对象时抛出 NullPointer

我有一个集成测试,其中一些设置是使用Guice完成的。我正在使用Mockito来模拟一些依赖项。到目前为止,这对我来说效果很好。我需要将PowerMock用于其他一些依赖项。现在Mockito在加载它自己的类之一时抛出NullPointerException:java.lang.ExceptionInInitializerErroratorg.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter.(ConditionalStackTraceFilter.java:17)atorg.mockito.excep

java - Mockito 不能模拟这个类

我试图模拟一个公共(public)类,但是在这样做时,Mockito抛出一个Mockitocannotmockthisclass异常。我想模拟的类:https://github.com/scribejava/scribejava/blob/master/scribejava-core/src/main/java/com/github/scribejava/core/builder/ServiceBuilder.java测试代码:packagexyz.jacobclark.adapter;importcom.github.scribejava.apis.TwitterApi;import

java - Mockito 和 CDI bean 注入(inject),@InjectMocks 调用@PostConstruct 吗?

我有这个代码:classPatient{@InjectSyringesyringe;@PostConstructvoidsayThankyouDoc(){System.out.println("Thathurtlikecrazy!");}}@RunWith(MockitoJUnitRunner.class)classTestCase{@MockSyringesiringeMock;@InjectMocksPatientpatient;//...}我希望Mockito调用PostConstruct,但我不得不添加:@Beforepublicvoidsimulate_post_constr

java - 我使用了 doReturn,为什么 Mockito 仍然会在匿名类中调用真正的实现?

我要测试的类:importcom.google.common.cache.CacheBuilder;importcom.google.common.cache.CacheLoader;importcom.google.common.cache.LoadingCache;publicclassSubject{privateCacheLoadercacheLoader=newCacheLoader(){@OverridepublicStringload(Stringkey)throwsException{returnretrieveValue(key);}};privateLoadingC

java - 如何使用 Mockito 打印与模拟的所有交互

假设我必须在ClassA上编写一些测试有一个ClassB作为成员(member),我在mockClassB.在测试结束时,我想使用verify(..)和verifyNoMoreInteractions(..)为所有模拟调用设置行为和验证。假设模拟与不同方法有10多个交互。有没有办法让JUnit打印所有模拟交互,然后在代码中使用它?现在我只是阅读代码并查找调用,而不是在测试中编写验证行。我确信有一种更简单的方法(在我的情况下TDD是不可能的:))我的用例:我有一个类,其算法使用了我模拟的许多其他类。在添加一个调用大量其他方法的新方法时,我想确保只有x数量的方法被调用y次,因为代码现在可以

超简单,在IntelliJ IDEA中使用JUnit和Mockito进行单元测试

介绍如何在IntelliJIDEA中使用测试框架JUnit和Mockito进行单元测试。微信搜索关注《Java学研大本营》1引言单元测试是软件开发的重要组成部分,用于确保代码中的单个单元(如函数和方法)按预期工作。本文分享如何在IntelliJIDEA中使用测试框架JUnit和Mockito进行单元测试。JUnit是Java应用程序中广泛使用的测试框架,它提供了一组注解和断言来帮助开发人员编写代码的测试。Mockito是一个模拟框架,支持创建和管理模拟对象,用以在测试过程中模拟真实对象的行为。跟随本文的步骤,请确保已安装IntelliJIDEA。2项目设置首先,在IntelliJIDEA中创建

JUnit 5和Mockito进行单元测试

1.JUnit5基础JUnit5是最新的JUnit版本,它引入了许多新特性,包括更灵活的测试实例生命周期、参数化测试、更丰富的断言和假设等。1.1基本注解@Test:标记一个方法为测试方法。@BeforeEach:在每个测试方法之前执行。@AfterEach:在每个测试方法之后执行。@BeforeAll:在所有测试方法之前执行一次(必须是静态方法)。@AfterAll:在所有测试方法之后执行一次(必须是静态方法)。@DisplayName:定义测试类或测试方法的自定义名称。@Nested:允许将测试类分组到更小的测试类中。@ParameterizedTest:进行参数化测试。1.2 断言(As

Mockito:断言期望是真的,但给出了错误

似乎当两者都f.isColored()&&fm.isColored()合在一起返回false,但是如果我单独使用它们,则方法正确返回正确。此方法0不会通过测试@OverridepublicbooleancolorConstraint(ActionSpaceas,FamilyMemberfm){for(FamilyMemberf:as.getFamilyMembers()){if(true&&f.isColored()&&fm.isColored())//thisdoesnotworkreturnfalse;}returntrue;}测试通过此方法1@Overridepublicbooleanc