2

我有一个返回类型为对象的方法。如何为此创建测试用例?我如何提到结果应该是一个对象?

例如:

public Expression getFilter(String expo)
{
    // do something
    return object;
}
4

2 回答 2

4

试试这样的东西。如果您的函数的返回类型被Object替换ExpressionObject

//if you are using JUnit4 add in the @Test annotation, JUnit3 works without it.
//@Test
public void testGetFilter(){
    try {
        Expression myReturnedObject = getFilter("testString");
        assertNotNull(myReturnedObject); //check if the object is != null
        //check if the returned object is of class Expression.
        assertTrue(true, myReturnedObject instanceof Expression);
    } catch(Exception e){
        // let the test fail, if your function throws an Exception.
        fail("got Exception, i want an Expression");
     }
}
于 2012-07-10T17:00:34.220 回答
1

在您的示例中,返回类型是 Expression? 没看懂问题,能详细点吗?

该函数甚至无法返回除表达式(或派生类型或 null)以外的任何内容。所以“检查类型”是没有意义的。

[TestMethod()]
public void FooTest()
{
    MyFoo target = new MyFoo();
    Expression actual = target.getFilter();

    Assert.IsNotNull(actual);  //Checks for null
    Assert.IsInstanceOfType(actual, typeof(Expression)); //Ensures type is Expression
}

我在这里假设 C#;你没有标记你的问题,也没有提到你的问题中的语言。

于 2012-04-06T00:10:55.477 回答