NUnit3 ile bir TestCase'deki istisnaları nasıl test ederim?NUnit 3'te [TestCase] özniteliği ile özel durumlar için test ediliyor mu?
ı şöyle bir yöntem Divide(a,b)
tanımlanmış var diyelim: belki ben,
public double Divide(double a, double b)
{
if(Math.Abs(b) < double.Epsilon) throw new ArgumentException("Divider cannot be 0");
return a/b;
}
ben NUnit 3.0 test durumları kullanarak bu yöntemi test etmek istiyorum:
[TestCase(-10, 2, -5)]
[TestCase(-1, 2, -0.5)]
public void TestDivide(double a, double b, double result)
{
Assert.That(_uut.Divide(a, b), Is.EqualTo(result));
}
mı orada Divide() 'nin bir ArgumentException atmasına neden olacak bir Test Örneği belirtme yolu ve bunun bir sonucu olarak beklenen sonuç, örn. çizgisinde bir şey:
[TestCase(-10, 2, -5)]
[TestCase(-1, 2, -0.5)]
[TestCase(-1, 0, ExpectedResult = TypeOf(ArgumentException)]
public void TestDivide(double a, double b, double result)
{
Assert.That(_uut.Divide(a, b), Is.EqualTo(result));
}
(Tabii ki ayrı bir test yöntemini tanımlar ve bu Assert.Throws()
kullandığından, bu merak üzerinden saf olduğunu olabilir)
Eğer gerçekten tek bir test kasanın içine iki zorlamak için istese, bir boolean throwsException argüman ekleyin ve test edebilir. Bununla birlikte, eğer öyleyse - o zaman - ve iki tamamen farklı beklentiler, bunun gerçekten iki farklı test olması gerektiğini kanıtlayabilir. – Charlie
Statik bir yöntem çağrısı kullanıldığında sistemimde (NUnit 3.2.1) daha düşük sözdizimi görünmüyor ... - yeterince komik, "Assert.Throws (() => MyStaticClass.MyStaticMethod (badparameter)) 'çalışıyor. –
ChriPf
Teşekkürler @ChriPf - Bence bir func olmalı. Onu düzenledim. – Chris