среда, 10 декабря 2014 г.

Коротко. Про TDD и "догматику". Только код

Коротко. Про TDD и "догматику". Только код.

procedure TmsShapeTestPrim.DeserializeDiargammAndCheck(aCheck: TmsDiagrammCheck; aShapeClass: RmsShape);
begin
 CreateDiagrammAndCheck(
  procedure (const aDiagramm : ImsDiagramm)
  begin
   TmsDiagrammMarshal.DeSerialize(MakeFileName(TestSerializeMethodName, aShapeClass), aDiagramm.toObject As TmsDiagramm);
   // - берём результаты от ПРЕДЫДУЩИХ тестов, НЕКОШЕРНО с точки зрения TDD
   //   НО! Чертовски эффективно.
   aCheck(aDiagramm);
  end
  , ''
 );
end;
...
procedure TmsDiagrammTest.TestDeSerialize;
var
 l_Diagramms : TmsDiagramms;
 l_FileName : String;
begin
 l_Diagramms := TmsDiagramms.Create(nil, nil);
 try
  TmsDiagrammsMarshal.DeSerialize(MakeFileName(TestSerializeMethodName, f_Context.rShapeClass), l_Diagramms);
  // - берём результаты от ПРЕДЫДУЩИХ тестов, НЕКОШЕРНО с точки зрения TDD
  //   НО! Чертовски эффективно.
  l_FileName := TestResultsFileName(f_Context.rShapeClass);
  TmsDiagrammsMarshal.Serialize(l_FileName, l_Diagramms);
  CheckFileWithEtalon(l_FileName);
 finally
  FreeAndNil(l_Diagramms);
 end;//try..finally
end;

По мне надо делать то, что "эффективно", а не то, что "догматично".

https://bitbucket.org/ingword/mindstream/src/027273a583c70d3ba588b056cb2a5cd4c9dd8014/Tests/Module/TestmsSerializeController.pas?at=MS-7_Lulin_Upgrade

https://bitbucket.org/ingword/mindstream/src/027273a583c70d3ba588b056cb2a5cd4c9dd8014/Tests/Module/msParametrizedShapeTestSuite.pas?at=MS-7_Lulin_Upgrade

Комментариев нет:

Отправить комментарий