我必须测试Java



我在课堂上被告知我必须在main方法中编写和测试我的代码,我写了它,但我不知道如何测试它。我该如何测试我的方法?我应该获取用户输入,然后获取第一个字母,最后一个字母,等等。

import java.util.Scanner;
public class Word
{
    public static void main(String[] args)
    {
    }
    public String word;
    public void Word()
    {
        String word = "";
    }
    public void Word(String word1)
    {
        String word = word1;
    }
    public String getWord()
    {
        return word;
    }   
    public void setWord(String newWord)
    {
        String word = newWord;
    }
    public void getFirstLetter()
    {
        String firstLetter = word.substring(0, 1);
    }
    public void getLastLetter()
    {
        String lastLetter = word.substring(word.length() - 1, word.length());
    }
    public void removeFirstLetter()
    {
        String noFirstLetter = word.substring(1, word.length());
    }
    public void removeLastLetter()
    {
        String noLastLetter = word.substring(0, word.length() - 1);
    }
    public int findLetter (String parameter)
    {
        word.indexOf(parameter);
        return 1;
    }
}

通过使用一些定义的输入调用方法来测试方法,并将结果与期望的输出进行比较。

的例子:

假设你有这样一个方法:

public static int add(int a, int b) {
  return a + b;
}

你可以这样测试:

int result = add( 3, 5);
if( result != 8 ) {
  //method is wrong
} 

所以基本上你定义了一个"契约",关于方法得到什么输入和结果应该是什么(根据返回值或其他改变的状态)。然后你检查你的输入是否得到了那个结果,如果是,你可以假设这个方法工作正确。

为了非常确定(你通常不能完全确定),你需要用不同类型的输入(尽可能多,以测试不同的情况,例如短单词,长单词)测试该方法几次。

你也经常测试你的方法如何处理错误的输入,例如通过传递null或空字符串。

您应该看看像junit这样的工具。

你可以创建一个简单的Test类,并测试你的类和它的行为。

imports ...;
public class MyTest{
    @Test
    public void testMyClass(){
        Word w= new Word();
        w.setWord("test");
        Assert.assertEquals(w.getFirstLetter(), "t");
    }
}

使用像Eclipse这样的工具,您可以很好地运行这样的测试。

给你一个提示:你需要一个Word实例,然后你可以调用你的方法

public static void main(String[] args) {
      Word test = new Word();
      test.setWord("something");
      // here you might read javadoc of the String class on how to compare strings
}

编辑:我忽略了这个:

public void setWord(String newWord)
{
     String word = newWord;
}

您编写的代码创建了一个变量word,并将newWord赋值给它,然后消失。如果你(显然)想要设置一个类的成员,你应该使用this来引用实例(你在main()中创建的)。

public void setWord(String newWord) {
   this.word = newWord;
}

既然我要说这是作业,我将尽量不明确给出答案。在main方法中,您应该设置单词,然后调用每个方法并打印输出以验证它是否正确。

同意Jason的观点。如果你想测试一些东西,只要System.out.println()它。在你的方法中,你的返回类型不是String,而是void,所以你可以改变它,并在主程序run上打印出来。

如果没有,就把System.out.println()放到你的void方法中。应该不会有太大问题!

相关内容

  • 没有找到相关文章

最新更新