testable-mock icon indicating copy to clipboard operation
testable-mock copied to clipboard

如何Mock多个值

Open Modplay opened this issue 3 years ago • 1 comments

有一个痛点,就是我一个待测类里面有多个条件,每个条件都是对同一个类的Mock,但是Mock的返回值不一样。而testable-mock是在一个静态内部类提前把所有的东西Mock完,这样我就无法获得准确的Mock值。

Modplay avatar Aug 29 '22 09:08 Modplay

一种解决办法是通过在不同的用例里预先设置不同的 MOCK_CONTEXT 的值,然后在Mock方法里读取相应的值来加以区分,MOCK_CONTEXT 这个特殊的Map会在运行期间自动转换为一个存储在ThreadLocal的线程安全容器。

详见在Mock方法中区分调用来源

从根本上来说,Testable在设计时主要考虑的是每个测试类当中仅需要Mock相应业务内直接调用的方法的标准单元测试(即单元测试仅测单一的”单元类型“),对于单元测试时有跨到其他类的情况,会稍显麻烦。

linfan avatar Nov 24 '22 05:11 linfan