我在java中有一个简单的类,它包含如下内容
package math;
public class Math {
/*Expected Behavior:
Given upperBound >= 0, the method returns
1 + 2 + ... + upperBound
But This method is buggy and works only on
inputs with odd value, e.g. for upperBound == 4,
the method returns 1 + 2 + 3 + 4 + 1 instead of
1 + 2 + 3 + 4 */
public static int sum(int upperBound) {
int s = 0;
for (int i = 0; i <= upperBound; i++) {
s += i;
}
if (upperBound % 2 == 0) {// <--------- BUG!
s++; // <--------- BUG!
} // <--------- BUG!
return s;
}
}
为此,我尝试使用randoop生成单元测试用例,下面给出了我在这里使用的命令,我的welcomes.class文件位于/home/niteshb/downloads/randoop-4.2.6/tests.class中
java -cp /home/niteshb/Downloads/randoop-4.2.6:/home/niteshb/Downloads/randoop-4.2.6/randoop-all-4.2.6.jar randoop.main.Main gentests --testclass=Math --literals-file=CLASSES
在这里,执行后,我得到的错误为
Cannot instantiate non-visible Welcomes specified via --testclass or --classlist.
Will try to generate tests for 0 out of 1 classes.
You provided no methods to test, so no tests for them can be generated.
Additional diagnostis appear below.
Model with hashcode 1253946629:
classTypes = [java.lang.Object]
inputTypes = []
coveredClassesGoal = []
classLiteralMap = {}
annotatedTestValues = []
contracts = ContractSet[size=12]
arity 1: [randoop.contract.EqualsReflexive@7ce6a65d, randoop.contract.EqualsToNullRetFalse@1500955a, randoop.contract.EqualsReturnsNormally@e874448, randoop.contract.CompareToReflexive@29b5cd00, randoop.contract.SizeToArrayLength@60285225]
arity 2: [randoop.contract.EqualsSymmetric@7113b13f, randoop.contract.EqualsHashcode@45820e51, randoop.contract.CompareToAntiSymmetric@42d8062c, randoop.contract.CompareToEquals@6043cd28]
arity 3: [randoop.contract.EqualsTransitive@cb51256, randoop.contract.CompareToSubs@59906517, randoop.contract.CompareToTransitive@5bfbf16f]
omitMethods = [
\bensuresCapacity\b
^\Qcom.google.common.collect.Iterators.cycle(
^\Qorg.apache.commons.math4.genetics.GeneticAlgorithm.getRandomGenerator()\E$
^\Qorg.apache.commons.math4.util.FastMath.random()\E$
^\Qjava.util.Date.<init>()\E$
^\Qorg.joda.time.DateTime.now()\E$
^\Qorg.joda.time.LocalDate.<init>\E$
^\Qnew org.joda.time.Partial.<init>()\E$
^\Qjava.io.File.list()\E$
^\Qjava.io.File.list(java.io.FilenameFilter)\E$
^\Qjava.io.File.listFiles()\E$
^\Qjava.io.File.listFiles(java.io.FileFilter)\E$
^\Qjava.io.File.listFiles(java.io.FilenameFilter)\E$
^\Qjava.io.File.listRoots()\E$
^\Qjava.lang.Class.getSigners()\E$
^\Qjava.lang.Object.hashCode()\E$
^\Qjava.lang.String.hashCode()\E$
^\Qjava.lang.System.clearProperty(java.lang.String)\E$
^\Qjava.lang.System.console()\E$
^\Qjava.lang.System.currentTimeMillis()\E$
^\Qjava.lang.System.getProperties()\E$
^\Qjava.lang.System.getProperty(java.lang.String)\E$
^\Qjava.lang.System.getProperty(java.lang.String, java.lang.String)\E$
^\Qjava.lang.System.getSecurityManager()\E$
^\Qjava.lang.System.getenv()\E$
^\Qjava.lang.System.getenv(java.lang.String)\E$
^\Qjava.lang.System.identityHashCode(java.lang.Object)\E$
^\Qjava.lang.System.inheritedChannel()\E$
^\Qjava.lang.System.mapLibraryName(java.lang.String)\E$
^\Qjava.lang.System.nanoTime()\E$
^\Qjava.lang.System.setProperty(java.lang.String, java.lang.String)\E$
^\Qjava.lang.reflect.Method.hashCode()\E$
^\Qjava.text.BreakIterator.getAvailableLocales()\E$
^\Qjava.util.AbstractList.hashCode()\E$
^\Qjava.util.AbstractSet.hashCode()\E$
^\Qjava.util.Arrays.deepHashCode(java.lang.Object[])\E$
^\Qjava.util.Arrays.hashCode(boolean[])\E$
^\Qjava.util.Arrays.hashCode(byte[])\E$
^\Qjava.util.Arrays.hashCode(char[])\E$
^\Qjava.util.Arrays.hashCode(double[])\E$
^\Qjava.util.Arrays.hashCode(float[])\E$
^\Qjava.util.Arrays.hashCode(int[])\E$
^\Qjava.util.Arrays.hashCode(java.lang.Object[])\E$
^\Qjava.util.Arrays.hashCode(long[])\E$
^\Qjava.util.Arrays.hashCode(short[])\E$
^\Qjava.util.Collection.hashCode()\E$
^\Qjava.util.Collections.shuffle(java.util.List)\E$
^\Qjava.util.Comparator.compare(java.lang.Object, java.lang.Object)\E$
^\Qjava.util.List.hashCode()\E$
^\Qjava.util.Random.<init>()\E$
^\Qjava.util.Set.hashCode()\E$
]
Operations: (1)
java.lang.Object.<init> : () -> java.lang.Object
There are no methods for Randoop to test. See diagnostics above. Exiting.
有人能帮我吗,我在这里呆了很长时间,尝试了不同的事情,但没有成功…
试试看这样的方法就行了
java -classpath /home/niteshb/Downloads/randoop-4.2.6:/home/niteshb/Downloads/randoop-4.2.6/randoop-all-4.2.6.jar randoop.main.Main gentests --testclass=math.Math --output-limit=10
这里我有我的代码的图像和我的错误的图像。有人能帮我解决这个问题吗?
我试图实现方法底部导航视图,但当我运行代码时,我得到了这个错误 build.gradle(模块应用程序)
我有一个FirebaseActions类,它为我做注册和登录工作。我在其中添加了一个getCurrentUser方法。我从我的主屏幕小部件调用这个函数。我需要将返回值(type= FirebaseUser)放入主屏幕的一个变量中,以访问loggedInUser.email。我的问题;有什么方法可以将FirebaseUser类型数据转换成Future类型变量?当我在HomeScreen而不是Fire
问题内容: 我正在做一个教程,并收到此错误: 致命错误:在第8行上找不到类“ MySQLi”(LONG URL) 第8行的代码是: 我在网上看到有人说要在我的phpinfo()中将其打开,但是“ mysqli”下面没有列出任何内容。 另外,我正在运行PHP版本5.2.5 问题答案: 听起来您只需要安装MySQLi即可。 如果您认为自己已完成此操作,但仍然遇到问题,请发布您的操作系统以及可能有助于进
问题内容: 我已经在Fxml中使用onEditCommit事件在用户编辑数据后检索数据。 FXML代码-: 实现了onEditCommit事件-: 错误-: 完整代码-: Record.java(获取设置程序) 请帮助我解决此错误,应在onEditCommit事件实现中放置哪种类型。我已经打印了列单元格值工厂 并得到 EditingCell.java-: 问题答案: 您的事件处理程序类型对我来说不
我正在开发这个MainWindows类,它扩展了一个自动提供JFrame的SingleFrameApplication抽象类 执行main()方法时,检查用户是否已登录,如果用户未登录,则首先显示LoginFrame类实现的另一个JFrame窗口。在这里,用户插入其用户名和密码,然后可以登录并返回到我的主窗口(如果登录正常)。 此时,这个MainWindows类只包含一个LogOut按钮,并且此按