gpt4 book ai didi

java - 使用 jUnit 测试尚未创建的类/对象

转载 作者:行者123 更新时间:2023-12-01 12:26:55 27 4
gpt4 key购买 nike

我正在开发一个程序,该程序将是一种适合初学者程序员的游戏。我打算提供一个字段,用户可以根据需要编写代码(方法、类...)。当用户想要提交代码时,我会将文本字段的内容复制到.java文件中,调用编译器来编译这个类,然后我想使用jUnit测试代码是否正常工作。

嗯,我知道 jUnit 用于开发目的,但我认为在这种情况下实现它也非常有用。

现在的问题是,当我需要编译我的程序时,应该测试的类(用户的代码)不会在那里。所以我不能只打电话

assertEquals( "Wrong sum", 6, Foo.sum( 4, 2));

因为它不知道 Foo 类是什么,因为它在编译时永远不会存在 - 在用户运行应用程序并开始编码之前。

我以为我可以创建一个虚拟类,只是为了编译,但是当我需要真实的东西时,我将无法替换该文件或编写另一个文件,如 Foo2.java,因为FooTest.java 只会对 Foo 对象进行操作...

我真的很感谢你们的建议!!!遇到这种情况我该怎么办?

谢谢:)

最佳答案

两个选项:

  • 让用户实现一个接口(interface)并在 JUnit 中使用该接口(interface)
  • 使用反射从类中获取公共(public)方法并调用它。

反射版本:

如果您有要测试的类的实例(可以是 Object 类型),请使用 getClass 获取 Class目的。然后使用getDeclaredMethods获取方法的列表。迭代方法直到找到您想要测试的方法(希望是唯一的公共(public)方法)。

关于java - 使用 jUnit 测试尚未创建的类/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26262184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com