Day18:Unnecessary Interview

作者参加了两家公司的面试,分别是博为峰公司的Java定岗培训面试和麦田地产的销售职位面试。尽管做了充分准备,但结果却不尽如人意。在麦田地产的面试中,一位自称北漂的应聘者通过虚构经历获得了工作机会。

今天8:30到地铁站,赶着早高峰,9:00才坐上第一班车,10:45终于到达龙泽龙冠置业大厦,参加博为峰公司的面试。

我本以为这是软件测试的面试,然而却仍旧发现这是java定岗培训的内容,我很失望,中午的吉野家也没有吃饱。

下午去了麦田地产,面试了销售的职位。那是个相当大的公司,有很多来自各行各业天南海北的人在那里面试,和我一起面试的一个是初来北京4天的北漂,一个幼教,一个是在58做过二手车交易的商人,一个是在校专科学生。他们都是走南闯北的成年人,可面试上并不很放得开,除了那个北漂。面试结束后,向助理向我通知面试结果,虽没直接说我落选,但已经委婉地表达了这个含义,我自然心领神会。那个北漂跟我打招呼,我们认识了一下,得知其实他所说的经历都是编的,却成功地让HR交给了他销售的工作。他也赞誉了IT的工作,指出这里巨大的利润,我们约定以后我带他来广院参观,真的是个不错的经历。

但总结来说,我今天的两个面试都没有意义,只是浪费时间。回学校的路上还接到了不少类似的电话,有一家(卓新科技)向我发出了面试邀请,我一再询问其并非培训公司后,选择参加面试;有一家(中科软))询问了我的技术能力后选择不予录取。

实习还是没有着落,我有些灰心,想给老师发封邮件好好梳理这一切,询问他们的意见,但终究没有——我想等明天的面试结果出来后再发消息决定。


9.26 Monday

<think>好的,我现在要解决用户关于UnnecessaryStubbingException的问题。首先,我需要回忆一下Mockito框架的相关知识。这个异常通常出现在测试中,当存在不必要的存根(stub)时被抛出。用户提到异常信息指出检测到不必要的存根,说明测试中有多余的配置。 首先,我得解释这个异常的原因。Mockito在严格模式下运行,会检查那些被声明但从未在测试中被调用的存根方法。比如,如果使用Mockito的strict stubbing或者JUnit5中的MockitoExtension,或者手动调用了Mockito.validateMockitoUsage(),这些情况下Mockito会进行校验。 接下来,我需要给出解决方法。用户可能需要检查他们的测试代码,找到那些没有被实际调用的存根,然后删除它们。或者,如果他们确实需要这些存根,可能需要调整测试逻辑,确保它们被正确使用。另外,可以考虑关闭严格模式,但这不是推荐的做法,因为保持测试的严格性有助于维护代码质量。 然后,我需要给出示例代码,说明问题出现的场景以及如何修复。比如,一个测试中配置了mock对象的方法,但在测试中并没有调用该方法,这时候就会抛出异常。修改后的代码应该移除多余的存根,或者确保它们被正确调用。 最后,按照用户的要求,提出相关问题。这些问题可能涉及Mockito的其他异常、严格模式的使用、如何忽略不必要的存根,以及最佳实践等。确保问题与当前主题相关,帮助用户进一步理解Mockito的测试机制。</think><< `UnnecessaryStubbingException` 是 Mockito 测试框架抛出的异常,表示测试中存在未被实际调用的冗余存根(stub)。该异常强调测试代码的简洁性,要求删除所有未被使用的模拟配置。 **原因**: 1. 在测试中定义了 mock 对象的方法存根(如 `when(...).thenReturn(...)`) 2. 该存根对应的模拟方法在后续测试中从未被实际调用 3. 使用 Mockito 的严格校验模式(通过 `MockitoRule.strictness(Strictness.STRICT_STUBS)` 或 `MockitoExtension`) **解决方法**: ```java // 错误示例:创建了未被使用的存根 @Test public void testUnusedStub() { List<String> mockList = Mockito.mock(List.class); // 冗余存根(后续未调用) when(mockList.get(0)).thenReturn("test"); // 实际测试逻辑未使用mockList.get(0) mockList.add("item"); verify(mockList).add("item"); } // 正确修改: @Test public void testCleanStub() { List<String> mockList = Mockito.mock(List.class); // 只保留必要的存根 when(mockList.add(anyString())).thenReturn(true); mockList.add("item"); verify(mockList).add("item"); } ``` **处理方式选择**: 1. 删除冗余存根(推荐) 2. 使用 `lenient()` 放宽校验: ```java @Test public void testLenientStub() { List<String> mockList = Mockito.mock(List.class); lenient().when(mockList.get(0)).thenReturn("test"); mockList.add("item"); verify(mockList).add("item"); } ``` 3. 调整测试结构确保存根被使用 4. 修改测试框架配置(慎用): ```java @Rule public MockitoRule rule = MockitoJUnit.rule().strictness(Strictness.LENIENT); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值