SORU
22 Kasım 2008, CUMARTESİ


Birim rastgele sonuçlar veren işlevleri ile Test

Bu bir dil veya çerçeve için özel olduğunu sanmıyorum ama xUnit.net ve C kullanıyorum#.

Belirli bir aralıkta rasgele bir tarih döndüren bir işlevi var. Bir tarih geçer, ve dönen tarih her zaman aralığı 1 ila 40 yıl verilen tarihten önce.

Şimdi eğer test bu birim için iyi bir yolu varsa merak ediyorum. En iyi yaklaşım benim şimdiki yaklaşımı olan bir döngü oluşturun ve 100 yani fonksiyonu Çalıştır kez izin vermeyecek gibi görünüyor ve bu 100 sonuç Her istenilen aralıkta olduğunu iddia.

Ben de farkında olduğu sürece ben mümkün kontrol benim Rastgele, orada olmayacak mükemmel bir çözüm (tüm sonra, sonucu rasgele), ama merak ediyorum ne yaklaşımlar aldığın zaman sana sahip olduğu için test işlevi döndüren bir tesadüfi sonucu belli bir aralığı?

CEVAP
22 Kasım 2008, CUMARTESİ


Sahte ya da rastgele sayı üreteci sahte

Böyle bir şey... bazı sözdizimi hataları olabilir, bu yüzden derleme bilmiyordum.

public interface IRandomGenerator
{
    double Generate(double max);
}

public class SomethingThatUsesRandom
{
    private readonly IRandomGenerator _generator;

    private class DefaultRandom : IRandomGenerator
    {
        public double Generate(double max)
        {
            return (new Random()).Next(max);
        }
    }

    public SomethingThatUsesRandom(IRandomGenerator generator)
    {
        _generator = generator;
    }

    public SomethingThatUsesRandom() : this(new DefaultRandom())
    {}

    public double MethodThatUsesRandom()
    {
        return _generator.Generate(40.0);
    }
}

Test, İRandomGenerator bir konserve iade için, sahte ya da sahte.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • IGN

    IGN

    19 EYLÜL 2006
  • Lin Steven

    Lin Steven

    17 EKİM 2006
  • Press Start

    Press Start

    4 HAZİRAN 2006