2012-04-06 2 views
0

У меня есть метод, для которого возвращаемый тип является объектом. Как создать тестовый пример для этого? Как я могу сказать, что результатом должен быть объект?Как написать тестовый пример для возвращаемого объекта метода

.: например

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

Это не ясно. Ваш метод возвращает выражение. Все в Java - это «объект», в том числе ваше «выражение». Что именно вы хотите проверить? – Guillaume

ответ

1

попробуйте что-то вроде этого. Если возвращение типа вашей функции Object замените Expression на Object:

//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 
     //checks if the returned object is of class Expression 
     assertTrue(true, myReturnedObject instaceof Expression); 
    }catch(Exception e){ 
     // let the test fail, if your function throws an Exception. 
     fail("got Exception, i want an Expression"); 
    } 
} 
1

В вашем примере ReturnType это выражение? Я не понимаю вопроса, не могли бы вы уточнить?

Функция равно неспособна возвращать что-либо иное, кроме выражения (или производного типа или 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#; вы не отметили свой вопрос и не указали язык в своем вопросе.

+0

привет, мне нужна тестовая ячейка junit. Я упомянул Экспрессию на самом деле. – Jessie

+1

Итак, пометьте свой вопрос «java» и «junit» в следующий раз и убедитесь, что код примера точно воспроизводит или демонстрирует вашу проблему ;-) (Это было для вас на этот раз). Я думаю, что ключ был бы [instanceof] (http://www.java2s.com/Tutorial/Java/0060__Operators/TheinstanceofKeyword.htm), но я не являюсь Java-гуру :-) Вы также можете проверить http://stackoverflow.com/questions/496928/what-is-the-difference-between-instanceof-and-class-isassignablefrom – RobIII