鄉親們晚安,今天要接續昨天的主題用NUnit進行C#單元測試,我會照著昨天把昨天(DAY12)參考網址裡的內容繼續照做到完,再自己動手把IsPrime()完成,做測試,那麼開始。
將昨天的ithelp_IsPrimeShould.cs改成下面的程式碼。
using NUnit.Framework;
using ithelp;
namespace Prime.UnitTests.Services
{
[TestFixture]
public class ithelp_IsPrimeShould
{
private Class1 _primeService;
[SetUp]
public void SetUp()
{
_primeService = new Class1();
}
[Test]
public void IsPrime_InputIs1_ReturnFalse()
{
var result = _primeService.IsPrime(1);
Assert.IsFalse(result, "1 should not be prime");
}
}
}
dotnet test後的結果
接下來更改ithelp中的IsPrime()
public bool IsPrime(int candidate)
{
if (candidate == 1)
{
return false;
}
throw new NotImplementedException("Please create a test first.");
}
dotnet test後的結果
Ok好那接下來我來試試自己做看看
將ithelp_IsPrimeShould.cs改成
using NUnit.Framework;
using ithelp;
namespace Prime.UnitTests.Services
{
[TestFixture]
public class ithelp_IsPrimeShould
{
private Class1 _primeService;
[SetUp]
public void SetUp()
{
_primeService = new Class1();
}
[Test]
[TestCase(5)]
[TestCase(-0)]
[TestCase(1)]
public void IsPrime_InputIs1_ReturnFalse(int i)
{
var result = _primeService.IsPrime(i);
Assert.IsFalse(result, "1 should not be prime");
}
}
}
放入三筆測資[TestCase(5)]、[TestCase(-0)]、[TestCase(1)]
因為只有1有正確的reture(false) ,dotnet test後的結果
接下來更改ithelp.cs中的IsPrime()
public bool IsPrime(int candidate){
if (candidate == 0 || candidate == 1)
{
return false;
} else
{
for (int a = 2; a <= candidate / 2; a++)
{
if (candidate % a == 0)
{
return false;
}
}
return true;
}
throw new NotImplementedException("Please create a test first.");
}
將ithelp_IsPrimeShould.cs改成
using NUnit.Framework;
using ithelp;
namespace Prime.UnitTests.Services
{
[TestFixture]
public class ithelp_IsPrimeShould
{
private Class1 _primeService;
[SetUp]
public void SetUp()
{
_primeService = new Class1();
}
[Test]
[TestCase(5)]
[TestCase(2)]
[TestCase(3)]
public void IsPrime_InputIs1_ReturnFalse(int i)
{
var result = _primeService.IsPrime(i);
Assert.IsTrue(result, "is prime");
}
}
}
dotnet test後的結果
如果增加[TestCase(1)]
dotnet test後的結果
DAY13心得:
明天會把進度拉回主線,繼續做座位管理系統的功能,有甚麼新學的東西也會繼續更新,那麼~晚安~