É uma pergunta interessante e a resposta pode ser mais fácil do que você pensa.
Simplificando, escreva testes que validem suas suposições. Não importa se você faz a implementação ou seus colegas programadores
A resposta longa.
Qualquer uma das opções listadas é um pouco passiva e exige que você volte e revise o código (se houver), mais cedo ou mais tarde.
- Os comentários precisam ser lidos e manipulados por sua contraparte responsável pela implementação. Enquanto isso, seu código não pode ser compilado. Se você verificar esse estado em um repositório de código, seu pipeline de integração contínua não funcionará, e é uma prática recomendada de qualquer maneira ... nunca verifique o código quebrado
- As exceções de tempo de execução parecem melhores, mas ainda são tóxicas, porque seu colega programador pode assumir que a implementação já foi feita sem verificação, deixando o sistema em um estado instável também. Se o método não for acionado com tanta frequência, poderá levar a um código de produção quebrado ... más práticas também ... nunca verifique as exceções "não implementadas"
- Esperar que seus colegas programadores implementem os métodos ou um stub também é assustador. Ele interrompe seu fluxo de trabalho e o de seus colegas programadores. O que acontece se eles estiverem doentes, em uma reunião ou no intervalo do café, você deseja gastar seu tempo esperando? ... não espere por alguém se não precisar
- implementar os métodos ausentes definitivamente a melhor maneira de avançar. Mas o que acontece se sua implementação não satisfizer todo o caso de uso e seus colegas programadores precisarem alterá-lo ou alterá-lo? Como você e eles garantem que ele ainda é compatível com o seu objetivo? A resposta é fácil novamente. Escreva testes que verifiquem, descrevam e documentem suas intenções. Se os testes terminarem, é fácil perceber. Se forem necessárias alterações nesse método que quebrem seu recurso ... você o verá imediatamente. Vocês dois têm um motivo para se comunicar e decidir o que fazer. Dividir a funcionalidade? Altere sua implementação, etc ... nunca verifique o código que não está suficientemente documentado pelos testes
Para atingir um nível suficiente de teste, sugiro que você dê uma olhada em duas disciplinas.
TDD - desenvolvimento orientado a testes - isso garantirá que você descreva sua intenção e a teste suficientemente. Também oferece a possibilidade de zombar ou falsificar métodos e classes (também usando interfaces) que ainda não foram implementadas. O código e os testes ainda serão compilados e permitirão que você teste seu próprio código isoladamente do código de seus colegas programadores. (consulte: https://en.wikipedia.org/wiki/Test-driven_development )
ATDD - desenvolvimento orientado a teste de aceitação - isso criará um loop externo (em torno do loop TDD) que ajuda você a testar o recurso como um todo. Esses testes só ficarão verdes quando todo o recurso for implementado, fornecendo um indicador automático quando seus colegas concluírem o trabalho. Muito legal se você me perguntar.
Advertência: No seu caso, eu escreveria apenas testes de aceitação simples e não tentaria atrair muito do lado dos negócios, pois seria demais para começar. Escreva testes simples de integração que reúnam todas as partes do sistema que o recurso exige. Isso é tudo o que é necessário
Isso permitirá que você coloque seu código em um pipeline de integração contínua e produza uma implementação altamente confiável.
Se você quiser se aprofundar nesse tópico, verifique os seguintes links: