Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何避免;除非模拟类型是可注入的或动态的,否则无法进入方法;?_Java_Unit Testing_Mocking_Jmockit - Fatal编程技术网

Java 如何避免;除非模拟类型是可注入的或动态的,否则无法进入方法;?

Java 如何避免;除非模拟类型是可注入的或动态的,否则无法进入方法;?,java,unit-testing,mocking,jmockit,Java,Unit Testing,Mocking,Jmockit,一般来说:是否可以为我自己不创建的对象调用方法的原始实现?我的意思是,我可以为我在测试代码中创建的实例调用inv.procedure(),但我不知道如何为在测试代码中创建的实例调用。原因是,据我所知,在我无法控制的情况下模拟实例的唯一方法是使用@Mocked注释,但它会使inv.proceduce()以“UnsupportedOperationException”失败 详细信息:我得到的错误代码如下: new NonStrictExpectations() { @Mocked("proc

一般来说:是否可以为我自己不创建的对象调用方法的原始实现?我的意思是,我可以为我在测试代码中创建的实例调用
inv.procedure()
,但我不知道如何为在测试代码中创建的实例调用。原因是,据我所知,在我无法控制的情况下模拟实例的唯一方法是使用
@Mocked
注释,但它会使
inv.proceduce()
以“UnsupportedOperationException”失败

详细信息:我得到的错误代码如下:

new NonStrictExpectations() {
    @Mocked("process")
    MyClassUnderTest o;
    {
        o.process(any);
        result = new Delegate<MyClassUnderTest>() {
            public void process(Invocation inv, Object o) {
                inv.proceed(); //Fails on this line with UnsupportedOperationException
            }
        }
    }
}
new nonstrictexpections(){
@嘲弄(“过程”)
myclasso测试;
{
o、 过程(任何);
结果=新委托(){
公共作废流程(调用inv,对象o){
inv.procedure();//此行失败,出现UnsupportedOperationException
}
}
}
}
当我使用动态部分模拟时,异常消失:

new NonStrictExpectations(o) {
    {
        o.process(any);
        result = new Delegate<MyClassUnderTest>() {
            public void process(Invocation inv, Object o) {
                inv.proceed();
            }
        }
    }
}
新的非严格检测(o){
{
o、 过程(任何);
结果=新委托(){
公共作废流程(调用inv,对象o){
继续投资();
}
}
}
}
我不明白。是不是@Mocked是“可注射的”