Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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_Junit_Jmockit - Fatal编程技术网

Java 模拟方法在集合中包装异常,而不是引发异常

Java 模拟方法在集合中包装异常,而不是引发异常,java,junit,jmockit,Java,Junit,Jmockit,我有一个使用result=newobject[]{…}的测试失败了。jmockit版本是1.34。测试应该抛出异常,但jmockit返回的集合中包含异常。以下是一个例子: public class ServiceTest { public class Service { private Set<String> saved; public Service() { saved = new HashSet<>()

我有一个使用
result=newobject[]{…}
的测试失败了。jmockit版本是1.34。测试应该抛出异常,但jmockit返回的集合中包含异常。以下是一个例子:

public class ServiceTest {
    public class Service {
        private Set<String> saved;

        public Service() {
            saved = new HashSet<>();
            saved.add("one");
            saved.add("two");
        }

        public Set<String> readAll() {
            return Collections.unmodifiableSet(saved);
        }
    }

    @Test(expected = RuntimeException.class)
    public void testReadAll(@Mocked Service service) {
        new Expectations() {{
                service.readAll(); times = 1; result = new RuntimeException();
        }};

        service.readAll();
    }

    @Test
    public void testReadAllWithArray(@Mocked Service service) {
        new Expectations() {{
                service.readAll(); times = 1; result = new Object[]{new RuntimeException()};
        }};

        Set set = service.readAll();
        assertThat(set.iterator().next(), instanceOf(RuntimeException.class));
    }
}
公共类服务测试{
公务舱服务{
保存私有集;
公共服务(){
saved=新HashSet();
已保存。添加(“一”);
已保存。添加(“两个”);
}
公共集readAll(){
返回集合。不可修改集合(已保存);
}
}
@测试(预期=RuntimeException.class)
public void testReadAll(@Mocked Service){
新期望(){{
service.readAll();时间=1;结果=new RuntimeException();
}};
service.readAll();
}
@试验
public void testReadAllWithArray(@Mocked Service){
新期望(){{
service.readAll();times=1;result=new Object[]{new RuntimeException()};
}};
Set=service.readAll();
assertThat(set.iterator().next(),instanceOf(RuntimeException.class));
}
}
testReadAllWithArray
显示
readAll
返回的对象是一个包含异常的集合


这是一个bug还是有解决方法?

从jmockit 1.34升级到最新版本