Почему все в качестве примера TTD и баз данных приводят конкатенацию строк в качестве примера? Это самая типичная операция для базы данных? Или просто копировать всегда удобнее? Я пытался найти приятный framework для тестирования года три, если не больше. Вы думаете, я много нашел?
Пример:
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.
Пример:
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;
Ничего не напоминает?