Assert.AreEqual On Fail бросает исключение - PullRequest
1 голос
/ 25 октября 2011

Я новичок в модульном тестировании. И используя Nunit, я не знаю, как пройти это исключение, но есть исключение AssertionUnhandled.

Я делаю

Assert.AreEqual(exists, 1 == (int)ExecScalar(string.Format("SELECT COUNT(*)    
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{0}{1}' AND TABLE_SCHEMA ='{2}'", 
            (audit ? DBHelper.AuditTablePrefix : ""), tableName, schema)));

Здесь существует = true, а в моем случае другое значение равно 1 == 0, поэтому оно говорит об ожидаемом истинном, но ложном.

Так что мне делать, потому что я не знаю, как мне двигаться дальше.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Похоже, вы пытаетесь убедиться, что конкретный запрос возвращает 1 при подсчете таблиц, Я бы предложил вам обернуть такой сложный запрос в Assert.DoesNotThrow() и использовать Assert.AreEqual() для сравнения двух значений:

int numberOfTables = -1;

Assert.DoesNotThrow(() => numberOfTablesRaw = 
             (int)ExecScalar(string.Format(
             "SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{0}{1}' AND TABLE_SCHEMA ='{2}'",  
             (audit ? DBHelper.AuditTablePrefix : ""), 
              tableName, 
              schema)));

Assert.AreEqual(1, numberOfTables); 
0 голосов
/ 25 октября 2011

если нужно сгенерировать исключение (ожидаемая ситуация), вы можете использовать этот код:

Assert.Throws<ArgumentException>(delegate { throw new ArgumentException() } );

или добавить

[ExpectedException(typeof(ArgumentException))]

рядом с вашей декларацией [Test].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...