2010-12-01 72 views
0

我从来没有写过一个单元测试。但是自从我读过的每篇文章,他们都在谈论单元测试。我想我应该开始使用它。如何在不使用库的情况下进行单元测试?

但是如何?

有人能指点我一个非常简单的单元测试你好世界的例子吗?没有使用jUnit或类似的东西。

回答

3

如果你不想使用任何其他库,那么你必须自己做很多工作。例如,假设你有要测试一个函数的类:

class Foo { 
    public int bar(int input); 
} 

现在,您可以编写一个测试类:

class TestFoo { 
    public void testBarPositive() { 
     Foo foo = new Foo(); 
     System.out.println(foo.bar(5) == 7); 
    } 

    public void testBarNegative() { 
     Foo foo = new Foo(); 
     System.out.println(foo.bar(-5) == -7); 
    } 

    public static void main(String[] args) { 
     TestFoo t = new TestFoo(); 
     t.testBarPositive(); 
     t.testBarNegative(); 
    } 
} 

这是一个很简单的例子,但它表明你如何你可以编写你自己的单元测试。

这就是说,我强烈推荐使用类似JUnit的库。它为您提供了很多免费的功能,并删除了大量您必须自己编写的代码。它还可以生成很好的报告,并且(与Cobertura相结合时)可以为您提供一个相当全面的测试结果。

0

我会推荐你​​使用其他一些库。这听起来像你想要做的是建立你自己的单元测试库。问题在于代码的任何基本问题,您可能会犯的任何逻辑错误,您也可能在您的单元测试代码中进行测试,因此,您的单元通过测试,但仅仅是因为它们做你期望他们做的事情,而不是因为他们实际上应该用你使用的任何语言的严格标准来做。假设你编写了一个函数来比较true/false,并且在PHP(0 == false)= true中返回0,但是(0 === false)= false如果你为场景1编码但忽略场景2,然后编写一个单元测试,测试场景1是否有效,但忽略场景2(如果你总是用这种方式进行编码,那么你可能会这么做),那么你的单元测试会根据你所定义的但仍然错误的方式通过。

相关问题