相关疑难解决方法(0)

Java:如何测试调用System.exit()的方法?

我有一些方法可以调用System.exit()某些输入.不幸的是,测试这些情况会导致JUnit终止!将方法调用放在新线程中似乎没有帮助,因为System.exit()终止JVM,而不仅仅是当前线程.是否有任何常见的处理方式?例如,我可以替换存根System.exit()吗?

[编辑]有问题的类实际上是一个命令行工具,我试图在JUnit中测试.也许JUnit根本不适合这份工作?建议使用补充回归测试工具(最好是与JUnit和EclEmma完美集成的东西).

java junit multithreading unit-testing testability

187
推荐指数
9
解决办法
8万
查看次数

在服务器上执行外部Java源代码 - 限制安全性和资源?

我正在考虑构建一个简单的在线服务,人们可以通过以源代码的形式将解决方案提交到我的服务器来解决编程练习,然后对其进行解释/编译和执行/测试.

通过使用Java VM,我可以提供对Java,Scala,Clojure,Ruby,Python和Javascript的支持.但是当我仔细考虑它时,恐怕我不知道如何限制脚本的资源和权限.

我的意思是它不应该

  • 写入磁盘
  • 创建超过X个线程
  • 运行超过X秒
  • 使用超过X MB的内存
  • 执行外部应用程序
  • 等等

如何将每个脚本放在沙箱中?

从我读过的内容来看,SecurityManager似乎无法完成所有这些......

java security

9
推荐指数
1
解决办法
980
查看次数