• Este debate tiene 4 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 6 años por Imak.
Viendo 5 entradas - de la 1 a la 5 (de un total de 5)

Curso Testing TDD, dudas



  • Imak
    Participante
    Imak

    Hola Cristina/Laura,

    Estoy siguiendo el curso de TDD y llegados al video 9 tengo alguna duda que os describo a continuación.

    Cuando se plantea hacer más exaustiva la función que completa el registro de dirección de envío, se revisa el código C/SIDE, concrétamente el trigger OnValidate del campo “Ship-To Code” en la tabla “Sales header”. Creo que en el video se comenta que los campos relativos a la dirección de envío del documento de venta toman su valor de la tabla dirección de envío o del cliente según sea el tipo de documento de venta.
    Igual no he leído bien el código, pero me parece que no depende del documento de venta. Lo que hace que se tomen los datos de una tabla u otra es que el valor que se valida sobre campo “Ship-To Code”. Si es ”copia los datos de envío de la tabla dirección de envío, en otro caso se copian diréctamente del cliente.

    Por otro lado, en la función que rellena/completa la tabla de dirección de envío, entiendo que los campos que hay que validar es porque tienen código en su correspondiente trigger de tabla. ¿Es necesario en estos casos crear su registro correspondiente en la tabla a la que apuntan, como por ejemplo cuando creas un C.P. antes de validarlo?. ¿Sería válido también olvidarse de las validaciones y rellenar los campos mediante asignaciones (:=), con lo cual no hay que estar pendiente de crear registros en tablas relacionadas?

    Gracias y un saludo

    Iñigo

    #5415

    Cristina Nicolàs
    Superadministrador
    Cristina Nicolàs

    Hola Iñigo,

    Gracias por tus comentarios.

    Igual no he leído bien el código, pero me parece que no depende del documento de venta. Lo que hace que se tomen los datos de una tabla u otra es que el valor que se valida sobre campo “Ship-To Code”. Si es ”copia los datos de envío de la tabla dirección de envío, en otro caso se copian diréctamente del cliente.

    No no, aquí quien no leyó bien el código fui yo. Hay alguna condición que si que parece que depende del tipo de documento, pero después en realidad vi que en las devoluciones y abonos, se estaba utilizando la información de dirección de la “Información Empresa”. Y seguramente si hubiera utilizado un almacén, la dirección hubiera sido la del almacén.
    De modo que estaba completamente equivocada en lo que dije en esa parte de la lección.

    Por otro lado, en la función que rellena/completa la tabla de dirección de envío, entiendo que los campos que hay que validar es porque tienen código en su correspondiente trigger de tabla. ¿Es necesario en estos casos crear su registro correspondiente en la tabla a la que apuntan, como por ejemplo cuando creas un C.P. antes de validarlo?. ¿Sería válido también olvidarse de las validaciones y rellenar los campos mediante asignaciones (:=), con lo cual no hay que estar pendiente de crear registros en tablas relacionadas?

    Si, para hacer el test podrías rellenar la información mediante asignaciones en lugar de mediante validaciones.
    Yo lo hice así porque – me parece que lo comento en algún momento en el curso – he creado eso función CreateShipToAddress a semejanza de una que encontré en la codeunit de test Library – Sales.
    Pero vamos, que para el propósito de este test, asignaciones nos hubieran bastado.

    Un saludo,
    Cristina Nicolàs

    #5416

    Imak
    Participante
    Imak

    Gracias por tu rápida respuesta Cristina.

    Para cerrar el tema, al menos de momento 😉

    Ya que el test del ejemplo gira en torno a la gestión de dirección de envío por defecto, ¿sería necesario contemplar en el código de test los casos en los que la información que llega al documento de venta no viene de la tabla de direcciones de envío?
    Digo esto porque entiendo que los casos “Return Order” y “Credit Memo” no contemplan el uso de la tabla de direcciones de envío en su gestión de datos de envío, y por tanto no haría falta implementar sus respectivas funciones de test.

    Me parece que tampoco es necesario contemplar en el código del test el caso en que un doc. venta que no sea “Return Order” o “Credit Memo”, se rellenen sus datos de envío con los del cliente, porque es el caso en que el Ship-To Code = ” y supongo que el código de la dirección de envío inicialmente creada <LibrarySales.CreateShipToAddress(ShipToAddress,Customer.”No.”);> siempre el distinto de ”. ¿Es esto así?

    #5418

    Cristina Nicolàs
    Superadministrador
    Cristina Nicolàs

    Hola Iñigo,

    Eso ya depende.
    Cuando hacemos un desarrollo y lo testeamos, entiendo que nos interesan 2 cosas: que nuestro desarrollo funciona, pero también que no nos hemos cargado cosas del estándar.

    En el caso de ejemplo del curso, en los documentos de venta Oferta, Pedido, Pedido Abierto y Factura, nos interesa comprobar que los documentos tienen la información que el desarrollo le ha metido (la información que viene de la tabla de dirección de envío).

    En el caso de Devolución y Abono, vimos que el estándar de Navision no se comportaba del mismo modo, y que nuestro desarrollo no aplicaba.
    En el curso, lo que hago es comprobar que en estos casos la información es la que provee el propio estándar de Navision (que en el ejemplo, después de dar algunas vueltas, acaba siendo la información que viene de la Información Empresa).
    Pero podria haber hecho otra cosa.
    En lugar de comprobar que la información es la correcta, podría haber simplemente comprobado que la información no es la mia, que es otra, no se que otra, pero otra.

    Es decir, en lugar de hacer comprobaciones tipo AreEqual(), podria haber hecho comprobaciones tipo AreNotEqual().

    En cualquier caso, en estos casos en los que no aplica mi funcionalidad, también podría haber hecho mucho menos test o incluso no hacer test en absoluto.
    Porque aunque he dicho que me interesa saber que mi desarrollo funciona y que no rompe nada del estándar, la verdad es que tampoco me pondré a escribir tests de toooodo el estándar de NAV para comprobar que sigue funcionando!

    En fin, que va un poco a gusto de cada uno hasta donde se llega con los tests.

    Un saludo,
    Cristina Nicolàs

    #5426

    Imak
    Participante
    Imak

    Esta claro, Gracias Cristina

    #5427
Viendo 5 entradas - de la 1 a la 5 (de un total de 5)

Debe iniciar sesión para responder a este tema.