Bir video oyunu için direksiyon sistemi için birim testleri yazıyorum. Sistemin birkaç davranışı vardır (A nedeni nedeniyle bu alandan kaçının, B nedeni nedeniyle bu alandan kaçının, her biri bir bölge haritasına biraz bağlam ekler.Ayrı bir fonksiyon daha sonra haritayı ayrıştırır ve istenen bir hareketi üretir.
Davranışlar için birim testlerinin nasıl yazılacağına karar vermede sorun yaşıyorum. TDD'nin önerdiği gibi, sadece davranışların istenen hareketi nasıl etkilediğiyle ilgileniyorum. Örneğin, nedenden ötürü kaçının A, kötü pozisyondan uzak bir harekete neden olmalıdır. Davranışın haritaya nasıl veya neden bağlam eklediğini umursamıyorum, sadece istenen hareketin konumdan uzak olması.
Bu nedenle, her davranış için yaptığım testler davranışı ayarladı, haritaya yazmasını sağladı, daha sonra istenen hareketi çözmek için harita ayrıştırma işlevini yürüttü. Eğer bu hareket şartnamemi karşılarsa mutlu olurum.
Ancak şimdi testlerim hem düzgün çalışan davranışlara hem de harita ayrıştırma işlevinin doğru çalışmasına bağlı. Ayrıştırma işlevi başarısız olursa, bir çift yerine yüzlerce başarısız test alırdım. Birçok test yazma kılavuzu bunun kötü bir fikir olduğunu ileri sürmektedir.
Ancak, haritayı alay ederek doğrudan davranışların çıktısına karşı test edersem, o zaman kesinlikle uygulamaya çok sıkı bir şekilde bağlıyım? Haritadan aynı hareketi biraz farklı bir davranış kullanarak alabilirsem, testler yine de geçmelidir.
Şimdi bilişsel uyumsuzluk çekiyorum. Bu testleri yapılandırmanın en iyi yolu nedir?