小编syf*_*tid的帖子

测试抽象类会抛出InstantiationException

这是我第一次编写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)

java junit exception

6
推荐指数
1
解决办法
4738
查看次数

BufferedWriter.write() 方法不会将整数写入文件

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   }\n
Run 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\n
Word: 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)

java file

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

这个C代码有什么问题?(不按预期工作)

我为我的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)

先感谢您!

c pointers function

-1
推荐指数
2
解决办法
140
查看次数

标签 统计

java ×2

c ×1

exception ×1

file ×1

function ×1

junit ×1

pointers ×1