2013-04-10 261 views
-1

这里的功能是测试功能单元测试,它返回一个对象(C#和Visual Studio)

public some_object test_function(some_object obj) 
{} 

,如果我使用此语句测试此函数

Assert.AreEqual(some_object, some_object.test_function(obj)); 

其中obj与some_object类型的对象。

现在我该如何测试这个函数,因为如果我尝试在assert函数的期望值参数中使用类名,它会给出类函数在此时无效的错误。

+1

请区分类和实例。 – 2013-04-10 06:25:21

+0

well'some_object'是一个类型,'obj'是对象。该函数正在返回一个“some_object”类型的对象。我不明白这里的含糊不清。 – 2013-04-10 06:28:22

+0

你的'test_function'没有标记为静态,你可以这样使用它。 – 2013-04-10 06:29:24

回答

0
Assert.AreEqual(some_object, some_object.test_function(obj)); 

some_object是一种名称

some_object.test_function(obj)保险业监督静态梅索德返回一个对象

你可以不是一个类型比较的实例。

您可以检查返回对象的类型,以确保它是类型some_object,如:

Assert.IsTrue(some_object.test_function(obj) is some_object); 
0

如果你正在试图找出同一类型的两个对象是否相等,你可能想要考虑重写equals()方法。如果你只是试图找出对象返回是一种东西,你可以这样做:

public void IsObjTypeOfSome_objectTest() 
{ 
    bool expected = true; 
    bool actual = false; 

    /* Assuming that test_function(obj) returns an object type of Some_object */ 
    if (test_function(obj) is Some_object) 
    { 
     actual = true; 
    } 

    Assert.AreEqual(expected, actual); 
}