Требуется не использовать ясность TestCase - PullRequest
3 голосов
/ 17 декабря 2010

У меня есть такой тест:

[TestCase(12, Result= typeof(mytype))]
public mytype GetById(int id)
{
yada, yada, yada.

}

in the NUnit error window, I see this:

Test.Tester.GetById(12):
  Expected: <mytype>
  But was:  <mytype>

Мой вопрос: это ожидается? Есть ли способ указать тип возвращаемого значения, когда это мой собственный тип, а не целое число, строка и т. Д.? Все примеры, которые я нахожу в Интернете, представляют собой только строки или целые числа. Нужно ли мне генерировать экземпляр mytype и говорить, что это именно то, что я ожидаю?

Это NUnit 2.5.9.

Ответы [ 2 ]

1 голос
/ 30 декабря 2010

Testcase Result = ... проверяет значение результата, а не тип результата.

Сообщение об ошибке вводит в заблуждение, поскольку type.ToString () и object.ToString () приводят к одному и тому же сообщению

Переопределите ваш метод myTpe.ToString (), и сообщение об ошибке станет

 Expected: <mytype>
 But was:  {your ToString() result goes here}

, эти тесты (nunit 2.5.7) работают как положено

    [TestCase(12, Result = "0")]
    public String GetById(int id)
    {
        return "0";
    }

    [TestCase(12, Result = typeof(mytype))]
    public System.Type GetByIdType(int id)
    {
        return typeof(mytype);
    }
0 голосов
/ 29 декабря 2010

Я не видел, чтобы результат передавался так раньше. Но не могли бы вы просто передать результат в качестве другого параметра?

[TestCase(12, 1)] 
public mytype GetById(int id, int result) 
{ 
   Assert.AreEqual(12, 1);
} 

и это, вероятно, констатирует очевидное, но ожидаемое: Но было: звучит очень похоже на то, что вы получите, если сравнить «истину» с истиной.

...