2013-03-17 56 views
0

我想获得单元测试的基础知识,并且所有教程都使用了大量示例。此外,我写了下面的代码和测试,并想知道这是否是正确的:这是一个正确的单元测试吗?

class Foo 
{ 
    public bool TwoDecisions(int X, int Y) 
    { 
    if(X>Y) 
     return true; 
    else return false; 
    } 
} 

TEST 
public class FooTests 
    { 
    [Test] 
    public void TwoDecisions_TRUE() 
    { 
     Foo f=new Foo(); 
     bool expected = true; 
     bool actual = FooTests.TwoDecision(10,9) 
     Assert.AreEqual(expected, actual); 
    } 
    } 
+1

当你尝试时会发生什么?此外,你的方法可以写成'return X> Y;' – 2013-03-17 18:49:53

+0

其实我现在不能尝试(现在不在家),所以我正在学习和准备。 – user970696 2013-03-17 18:53:27

回答

1

这是一个单位测试,所以这种方式是正确的。但这是这个班级唯一需要的测试吗?没有。您只测试您的if语句的分支返回true。你也应该测试一下为了完全“覆盖”你的代码的情况。

+0

我明白了,我应该有另一种测试方法返回false和可能两个:一个用于“=”,另一个用于“<”。 – user970696 2013-03-17 18:54:04

+0

@TerryS正确 - 您应该尝试运用班级中的所有代码。这意味着编写单元测试来测试通过代码的所有路径。 – ColinE 2013-03-17 18:58:25

+0

并且不要忘记x == y – Jocke 2013-03-18 08:01:33

相关问题