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
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.
Nasıl alay Angularjs söz veren bir ser...
Nasıl python django birim test ederken...
Neden birim test tek şey test yapmalıy...
ScalaTest ve Scala Görüşler birim test...
Nasıl RequireJS birim test için sahte ...