2015-09-25 13 views
6

AutoFixture'ın iki tam sayı üretmesini istiyorum ve ikincisi için 0 olmasını veya önceki üretilen sayı olmasını istemiyorum. AutoFixture'a "gereksinimi" onurlandırması için bir yol var mı?AutoFixture, başka bir sayı değil,> 0 olan bir tamsayı nasıl oluşturulur?

RandomNumericSequenceGenerator'a baktığımda, lower limit is 1 gibi görünüyor, bu yüzden ilk gereksinimi belirtmem gerekebilir. Ardından, "tohumlama" seçeneğine bakıyordum, ancak this answer'da belirtildiği gibi, varsayılan olarak bir sayı için kullanılmayacak.

Burada bakan bir şey var mı?

+0

düz-AutoFixture veya AutoFixture.Xunit/NUnit kullanıyor musunuz? –

+0

Maalesef MSTest kullanarak düz AutoFixture. Niye ya? Örneğin Xunit nasıl yardımcı olur? – Ties

+0

AutoFixture.Xunit ile daha az boilerplate. Aşağıdaki [cevap] 'a (http://stackoverflow.com/a/32782299/467754) bakın. –

cevap

7

Burada düz AutoFixture ile bunu yapmanın bir yolu şudur:

[Fact] 
public void GenerateTwoDistinctNonZeroIntegersWithAutoFixture() 
{ 
    var fixture = new Fixture(); 
    var generator = fixture.Create<Generator<int>>(); 

    var numbers = generator.Where(x => x != 0).Distinct().Take(2); 
    // -> 72, 117 
} 

Ve burada AutoFixture.Xunit ile bunu yapmanın bir yolu şudur:

[Theory, AutoData] 
public void GenerateTwoDistinctNonZeroIntegersWithAutoFixtureXunit(
    Generator<int> generator) 
{ 
    var numbers = generator.Where(x => x != 0).Distinct().Take(2); 
    // -> 72, 117 
} 
+3

Bu işe yarayacak, ancak istenen davranış AutoFixture * varsayılan * davranışı değil mi? –

+1

OMG, gerçekten. Orijinal soruyu ilk okuduğumda kandırıldım. [Bu] (http://stackoverflow.com/questions/32781002/how-to-get-autofixture-create-an-integer-that-is-0-and-not-another-number/32782299?noredirect=1# @AlexanderW tarafından yorumlandığı gibi, yorum53403678_32781002) yanıt olmalıdır. İyi yakalama! Bunu işaret ettiğin için teşekkür ederim. –

+0

@NikosBaxevanis Haklısın ve cevabını kabul etmedim. Mark'ın yorumunu kabul edemem, çünkü bu bir yorum. Belki Mark onun yorumunu "yükseltebilir" diye kabul edebilirim;) – Ties

İlgili konular