这是我第一次编写JUnit测试,我遇到了以下问题.我必须为抽象类编写测试,并且我被告知这样做:http: //marcovaltas.com/2011/09/23/abstract-class-testing-using-junit.html
但是,当我尝试运行第一个测试时,我会得到InstantiationException这样的结果:
java.lang.InstantiationException
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
Run Code Online (Sandbox Code Playgroud)
这是我正在运行的测试:
/**
* Test of setNumber method, of class BaseSudoku.
*/
@Test
public void testSetNumber_3args() {
System.out.println("setNumber");
BaseSudoku b = getObject(9);
boolean expResult = false;
boolean result = b.setNumber(0, -7, 7);
assertEquals(expResult, result);
}
Run Code Online (Sandbox Code Playgroud)
请注意,Base Sudoku是一个抽象类,而HyperSudoku是一个子类.
我在BaseSudokuTest中实现了以下抽象方法:
protected abstract BaseSudoku getObject(int size);
Run Code Online (Sandbox Code Playgroud)
这里的实现HyperSudokuTest扩展了BaseSudokuTest:
@Override
protected BaseSudoku getObject(int size) { //I need size for other implementations
return new HyperSudoku();
}
Run Code Online (Sandbox Code Playgroud) public void saveToTextFile(String outText) throws IOException\n {\n\n BufferedWriter out = new BufferedWriter(new FileWriter(outText));\n String[] keys=new String[words.size()];\n int[] values=new int[words.size()];\n int i=0;\n\n for(String word : words.keySet())\n {\n keys[i]=word;\n values[i]=words.get(word);\n i++;\n if(i==words.size()) //\xce\x88\xcf\x87\xce\xbf\xcf\x85\xce\xbc\xce\xb5 \xce\xb4\xce\xb9\xce\xb1\xcf\x83\xcf\x87\xce\xaf\xcf\x83\xce\xb5\xce\xb9 \xcf\x8c\xce\xbb\xce\xbf \xcf\x84\xce\xbf HashMap\n {\n break;\n }\n }\n\n bubbleSort(values,keys);\n\n for(i=0;i<words.size();i++)\n {\n out.write(keys[i]);\n out.write(",");\n out.write(values[i]);\n out.write("\\n");\n }\n\n out.close();\n }\nRun Code Online (Sandbox Code Playgroud)\n\n我有上述函数,当我打开文件时,它会创建如下内容:\nhello,you,are,fine,how,thanks,too,world,以及前两个逗号后面的一些奇怪的符号。就像 out.write(values[i]); 和 out.write("\\n"); 不工作!我检查了 bubbleSort* 之后的数组,它们很好!问题似乎出在写入文件......
\n\n这就是我得到的,这是正确的:
\n\nWord: hello Frequency: 2\nWord: you Frequency: 2\nWord: are Frequency: 1\nWord: fine Frequency: 1\nWord: how Frequency: 1\nWord: thanks Frequency: 1\nWord: too …Run Code Online (Sandbox Code Playgroud) 我为我的C班做了另一个练习.代码不会崩溃,但它不能按预期工作.显然我犯了一个我找不到的错误.赋值如下:用户输入两个字符c1和c2以及一个整数n,你必须创建一个动态创建的函数,并返回一个包含n个字符的字符串,如下所示:c1c2c1c2c1c2等.例如:c1 = a和c2 = s和n = 4字符串是:asas
但是我创建的数组不包含c1和c2,而是ASCII表中的一些随机字符.加上这里:
printf("\nThe string is: %s\n",s);
Run Code Online (Sandbox Code Playgroud)
屏幕上的输出是这样的:Ohe string是:I(字符串的Insted是:s-what s is-)这是.exe文件中照片的链接:

#include <stdio.h>
#include <stdlib.h>
char* alternate(char c1,char c2,int n)
{
int i;
char *s;
s=(char*)malloc((n+1)*sizeof(char));
if(s==NULL)
{
puts("Could not allocate memory!");
exit(1);
}
for(i=0;i<n;i++);
{
if(i%2==0)
s[i]=c1;
else
s[i]=c2;
}
s[i]='\0';
return s;
}
main()
{
char c1,c2,*s;
int n;
puts("Give two characters: ");
scanf("%c %c",&c1,&c2);
fflush(stdin);
puts("Give an integer: ");
scanf("%d",&n);
s=alternate(c1,c2,n);
printf("\nThe string is: %s\n",s);
free(s);
system("pause");
}
Run Code Online (Sandbox Code Playgroud)
先感谢您!