我有一个充满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)
使用这种方法,我能够做一个断言等于,但在我看来这样做是徒劳的.问题是我有几个类似这样的类,它降低了我的单元测试覆盖率%.
我有两个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)
谢谢
我有这个视图,它是每个会话的组列表:
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)
也许我的观点错了,我应该生成一个已经按会话和群组分组的略有不同的词典?
我做了一些关于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")