拜托,我是Java新手。如何为以下程序编写 JUnit 测试:
要测试的程序:
package codekeeper;
/**
*
* @author henryjoseph
*/
import java.util.*;
import java.io.*;
public class CodeKeeper {
ArrayList<String> list; //no specific amount..
String[] codes = {"alpha","lambda","gamma","delta","zeta"};
public CodeKeeper (String[] userCodes)
{
list = new ArrayList<String>();
for(int i =0; i<codes.length;i++)
addCode(codes[i]);
for(int i =0; i<userCodes.length;i++)
addCode(userCodes[i]);
for(String code:list)
System.out.println(code);
}
final void addCode(String code)
{
if(!list.contains(code))
list.add(code);
}
public static void main(String[] args) {
System.out.print("Enter your name and press Enter: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name = null;
String[] argu = new String[] {name};
try {
name = br.readLine();
argu = new String[] {name} ;
}catch (IOException e) {
System.out.println("Error!");
System.exit(1);
}
CodeKeeper keeper = new CodeKeeper(argu);
}
}
示例测试代码:
public class MyClassTest {
@Test
public void testMultiply() {
MyClass tester = new MyClass();
assertEquals("Result", 50, tester.multiply(10, 5));
}
}
这是编写 Junit 测试的标准方法吗?
首先是一些背景,然后是一些示例。当您针对代码编写单元测试时,您正在测试应用程序的非常具体且有限的情况。这意味着每个单元测试应最多涵盖函数(方法)可以接收的一 (1) 个场景。如果您想一起测试多个功能,您将执行集成测试。现在,如果我们采用您声明的以下函数:
final void addCode(String code)
{
if(!list.contains(code))
list.add(code);
}
假使,假设codeKeeper
已正确初始化。
适当的单元测试如下所示:
@Test(expected= NullPointerException.class)
public void testAddCode_1() throws Exception
{
codeKeeper.addCode(null);
}
另一种适当的用法如下:
@Test()
public void testAddCode_2() throws Exception
{
codeKeeper.addCode("myMagicCode");
assertTrue(codeKeeper.getList().contains("myMagicCode");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)