TDD и базы данных

Почему все в качестве примера TTD и баз данных приводят конкатенацию строк в качестве примера? Это самая типичная операция для базы данных? Или просто копировать всегда удобнее? Я пытался найти приятный framework для тестирования года три, если не больше. Вы думаете, я много нашел?

 

TSQLUnit

Пример:

CREATE PROCEDURE ut_testCapitalize AS
BEGIN
DECLARE @outStr VARCHAR(500)
EXEC capitalize 'a string', @outStr OUT
IF (ASCII(LEFT(@outStr,1)) <> ASCII('A')) OR @outStr IS NULL
EXEC tsu_failure 'Capitalize should make the first character uppercase'
END
 

String capitalization – самая используемая операция на сервере mssql.

 

UTPLSQL

Пример:

CREATE OR REPLACE FUNCTION betwnStr (
   string_in IN VARCHAR2,
   start_in IN INTEGER,
   end_in IN INTEGER
   )
   RETURN VARCHAR2
IS
BEGIN
   RETURN (
      SUBSTR (
         string_in,
         start_in,
         end_in - start_in + 1
         )
      );
END;
 

Проверяем работу функции SUBSTR. Конечно, самая используемая операция на сервере Oracle.

 
DBUnit
 

Еще хуже. Здесь только данные загружать можно и чистить их потом.

 
SQLUnit
 

Немного теплее:

 

<subdef name="UpsertStreetDef"
   query="{? = pk_edit_street.upsert_street(?,?)}"
   description="Definition of Upsert Street">
     <param id="1" type="INTEGER" name="rc" inout="out">
        {t}    ${streetId}
     </param>
     <param id="2" type="VARCHAR" name="street">?</param>
     <param id="3" type="VARCHAR" name="city">SFO</param>
 </subdef>
 

Хотя писать такие тесты – руки устанут.

 
DBFit
 
create or replace procedure ConcatenateStrings
(
firstString varchar2,
secondString varchar2,
concatenated out varchar2) as
begin
   concatenated:=firstString || ' ' || secondString;
end;
 

Ничего не напоминает?

Tags: , , ,

Смотрите также: