Как создать единичный тест, который частично использует тесты модулей базы данных, но вызывается из регулярного модульного теста?операции с базами данных в качестве предпосылки для модульных тестов?
Да, возможно, они не могут быть модульными испытаниями; вы можете назвать их интеграционными тестами. Независимо от того, что вы хотели бы назвать их, это тесты.
В моих NUnit тестов, я использую вспомогательные константы:
private const string NumericSerial="123123";
private const string NonNumericSerial="123123 bad serialnumber";
private const int ValidPatientId=123;
private const int InvalidPatientId=-1;
private const int PatientIdThatDoesNotExistInppp=111291;
private const string SerialNumberThatDoesNotExistInshmk="123123";
private const string SerialNumberThatDoesExistInshmk="1015873";
private const byte InvalidFirmwareVersion=0;
private const int FacilityThatDoesntExistInAAA=Int32.MaxValue;
Перед запуском каких-либо тестов, которые делают использование этих констант, я хотел бы, чтобы убедиться, что эти постоянные корректно определены.
Например, я могу утверждать, что NumericSerial действительно является числовым без необходимости делать какие-либо издевки или инъекции любых зависимостей - я бы просто tryparse.
Однако другие константы, такие как PatientIdThatDoesNotExistInppp необходимо будет проверить, что это действительно не существует в базе данных ррр. Для того, чтобы сделать это, я могу следовать нескольким маршрутам:
- Реализовать Linq запрос в рамках общей структуры объекта
- Явным отправить отборное заявление в базу данных
- Или я мог бы тест блока базы данных, первым создавая необходимо запись (в нашем случае это будет убедиться, что 111291 не существует в базе данных.
Если вы не сильно советуют вариант № 3, я склонен реализовать это. Как создать модульный тест, который частично использует базу данных но вызывается из регулярного модульного теста?
Я ищу что-то вроде следующего:
[Test]
public response_from_database_unit_test_equals_111291()
{
//call the database unit test
//retrieve value from database unit test
}
Вы используете код Entity Framework сначала как ваш уровень доступа к данным, без каких-либо хранимых процедур? если да, то есть фантастический способ провести тестирование данных, не ударяя базу данных, но со 100% -ной надежностью слоя данных. дай мне знать. –
Я не так люблю слушать, как это делается –
от «this way» Я предполагаю, что вы имели в виду ваш вопрос, поэтому я ответил, что –