小编met*_*aon的帖子

JUNIT测试void方法

我有一个充满void方法的java类,我想进行一些单元测试以获得最大的代码覆盖率.

例如,我有这个方法:

protected static void checkifValidElements(int arg1,  int arg2) {
    method1(arg1);
    method2(arg1);
    method3(arg1, arg2);
    method4(arg1, arg2);
    method5(arg1);
    method6(arg2);
    method7();
}
Run Code Online (Sandbox Code Playgroud)

由于我翻译代码以便更好地理解,因此它的名字很差.每个方法都以某种方式验证参数是否有效并且写得很好.

示例:

private static void method1(arg1) {
    if (arg1.indexOf("$") == -1) {

        //Add an error message 
        ErrorFile.errorMessages.add("There is a dollar sign in the specified parameter");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的单元测试正在覆盖小方法,因为我要求他们检查ErrorFile是否包含错误消息,但我不知道如何测试我的方法checkIfValidElements,它什么都不返回或什么都不改变.当我使用Maven运行代码覆盖时,它告诉我单元测试会覆盖我课程的这一部分.

我看到的唯一方法是更改​​此方法以返回int或bollean值,如下所示:

protected static int checkifValidElements(int arg1,  int arg2) {
    method1(arg1);
    method2(arg1);
    method3(arg1, arg2);
    method4(arg1, arg2);
    method5(arg1);
    method6(arg2);
    method7();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用这种方法,我能够做一个断言等于,但在我看来这样做是徒劳的.问题是我有几个类似这样的类,它降低了我的单元测试覆盖率%.

java junit

58
推荐指数
4
解决办法
15万
查看次数

Java字符对齐算法

我有两个100个字符的数组(最大,可能更小或不同的大小),我想对齐.当有一个与另一个不同的角色时,我想添加一个" - ".我发现了基于动态编程的Needleman-Wunsch算法,以及Smith-Waterman算法,它也是一种基于动态编程的通用局部对齐方法,但它们似乎对我想做的事情太复杂了.我只需要一个简单的Java算法,可能只有不到50行,这段代码将被翻译成汇编语言,这就是为什么我需要一个简单的算法.

有没有办法用diff算法进行这种对齐?如果有,有人可以指出我该怎么做?我搜索了biostar部分,但似乎我需要使用我提到的两种算法.

英语不是我的母语,所以我很想搜索错误的关键词.

我的程序已经使用了Needleman算法和大约200(ish)行代码.

所需输入/输出的示例:

Input
Array 1 : MKNLASREVNIYVNGKLV
Array 2 : QMASREVNIYVNGKL


Output
Array 1 (or a simple print) : -MKNLASREVNIYVNGKLV 
Array 2 (or a simple print) : QM---ASREVNIYVNGKL-
Run Code Online (Sandbox Code Playgroud)

谢谢

java algorithm

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

Django在模板中分组字典

我有这个视图,它是每个会话的组列表:

def group_list():
    attendance = Student.objects.values('session', 'group', 'full_name',).order_by('session','group')
return attendance
Run Code Online (Sandbox Code Playgroud)

字典看起来像这样:

{'full_name': u'User1', 'session': 1, 'group': u'A'}
{'full_name': u'User2', 'session': 1, 'group': u"B"}
{'full_name': u'User3', 'session': 2, 'group': u"B"}
{'full_name': u'User4', 'session': 99, 'group': u'A'}
{'full_name': u'User5', 'session': 99, 'group': u"C"} 
Run Code Online (Sandbox Code Playgroud)

有没有办法为我的模板做一个循环或嵌套循环输出这样的东西?

Session 1 :
    Group A
          -User1
          -...
    Group B
          -User2
Session 2 :
    Group A
    Group B
          -User3
Run Code Online (Sandbox Code Playgroud)

也许我的观点错了,我应该生成一个已经按会话和群组分组的略有不同的词典?

python django django-templates django-views

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

Java,system.out.print的行尾

我做了一些关于System.out.print()和的研究,System.out.println()并且我发现System.out.println()在印刷线的末尾添加了行尾.

System.out.println("Test");
Run Code Online (Sandbox Code Playgroud)

仅输出:

Test
Run Code Online (Sandbox Code Playgroud)

但不打印行尾.

System.out.print("Test");
Run Code Online (Sandbox Code Playgroud)

仅输出:

Test
Run Code Online (Sandbox Code Playgroud)

但不会结束这条线并为其他单词或数字等留下一些地方等.

更具说明性的方式是:

Test_____________________________________________ (All "blank" spots)
Run Code Online (Sandbox Code Playgroud)

有没有办法System.out.print()在这个词之后直接强行结束Test?用法%会删除"空白"斑点吗?

或者一种方法来编写一个函数,在我使用多个System.out.print()打印句子后会结束这一行?

举个例子 :

System.out.print("Test);
System.out.print("Test);
Run Code Online (Sandbox Code Playgroud)

将一个纯粹的前哨:

Test Test
Run Code Online (Sandbox Code Playgroud)

喜欢 System.out.println("Test Test")

java printing println

3
推荐指数
1
解决办法
5万
查看次数