не судите строго, но объясните на примере. Как правильно составить (вообще) как составить unit-тест, например для подобного кода?
if vDoc.ClassID.InheritsFromClass(КПДокументНаПериод) and (позФИКСЦЕНА >= 0 or позНДСФИКСЦЕНА >= 0 or позСУММАФЦЗАПЕРИОД >= 0) then
begin
netStrok := false;
var ДопСостоянияДистр := ArrayToComma([СостояниеДистрибутива.Подключен, СостояниеДистрибутива.НаСкладе]);
var ДатаНачала := EndOfDay(ToDate(vDoc.GetAttrValuesByName('ДатаНачала')));
if fSN.AsString <> '' then
ТекДистрибутив := Номенклатура.ВернутьДистрибутив(vDoc.Клиент, CommaGet(fSN.AsString, 0),
Номенклатура(fArticle.AsInteger), ДопСостоянияДистр, ДатаНачала);
if assigned(ТекДистрибутив) then
var ФиксЦена := Rat.EvalQuery(
SQLText
!Select Reg.DistrFixedPrice
From RegChangeDistributiv Reg
Where Reg.Distributiv = &ToInt(ТекДистрибутив)&
and Reg.BeginDate <= &ToStr(ДатаНачала)&
and Reg.EndDate > &ToStr(ДатаНачала)&
and IsWorked = -1
Order by Reg.BeginDate desc!
end);
ФиксЦена := ToFloat(ФиксЦена);
if позФИКСЦЕНА >= 0 then
vMas[i, позФИКСЦЕНА] := ФиксЦена;
if позНДСФИКСЦЕНА >= 0 then
vMas[i, позНДСФИКСЦЕНА] := Round(ToFloat(ФиксЦена) * fNDSRate.AsFloat / 100, 2, 1);
if позСУММАФЦЗАПЕРИОД >= 0 then
begin
var ДатаОкончания := EndOfDay(ToDate(vDoc.GetAttrValuesByName('ДатаОкончания')));
var КолМес := Функции_мат.КолМесяцев(ДатаНачала, ДатаОкончания);
vMas[i, позСУММАФЦЗАПЕРИОД] := ФиксЦена * КолМес;
end;Т.е. на выходе будем иметь ФИКСЦЕНА или НДСФИКСЦЕНА или СУММАФЦЗАПЕРИОД. Как правильно изолироваться от реальных объектов и переменных? Мне нужно объяснить это на пальцах, а лучше показать пример программисту, чтобы мотивировать его на создание собственных юнит-тестов. :)
Спасибо


