在使用JMockit的Mocking方式,且模拟的是一个dubbo方法时的实现原理很困惑。例如:
@Test
public void getNameTest() {
String name1=myObj.getName(); //name1的值是zhangsan
new NonStrictExpectations(myObj) { { myObj.getName();result="aaabbb" } }
String name2=myObj.getName(); //name1的值是aaabbb
}
myObj对象是spring注入的dubbo代理对象,但是在执行测试用例时并没有调用dubbo服务,直接返回"aaabbb"。
我现在有两种想法,但又觉得都不对:
1:asm动态的修改了myObj类的getName方法的实现。但是对象myObj没变,动态修改了方法直接生效吗?
2:JMockit内部标记了myObj对象的getName方法,在重放时直接调用mock的方法,但是debug时没看到相关的代码。
请大神们不惜赐教啊
你好,第一个问题:你想取消web上传时的转码: 看看你的web端上传文件是怎么加任务流的, 之前怎么加就怎么去除。
第二个问题:你的最终目的是想收到回调:
1、只有在主动调用转码接口(ConvertVodFile)处理视频时,才会发起该回调TranscodeComplete
2、其他利用sdk任务流处理的转码等(简单理解就是含有procedure字段的转码属于任务流) 都是走任务流回调ProcedureStateChanged
3.TranscodeComplete就是转码完成的回调;
4.ProcedureStateChanged是任务流状态变更的回调。
5.ProcedureStateChanged也可以拿到转码后地址的
相似问题