【发布时间】:2021-10-28 00:18:33
【问题描述】:
我正在看 NUnit 的课程,我来这个练习是为了写一个下面函数的测试方法
public static string GetOutput(int number)
{
if ((number % 3 == 0) && (number % 5 == 0))
return "FizzBuzz";
if (number % 3 == 0)
return "Fizz";
if (number % 5 == 0)
return "Buzz";
return number.ToString();
}
我所做的是我创建了一个参数化测试来涵盖以下所有情况
[Test]
[TestCase(15 , "FizzBuzz")]
[TestCase(3, "Fizz")]
[TestCase(5, "Buzz")]
public void GetOutput_WhenCalled_ReturnString(int number , string word)
{
var result = FizzBuzz.GetOutput(number);
Assert.That(result, Is.EqualTo(word));
}
但是导师已经用单独的方法编写了每个案例,例如
public void GetOutput_NumberDivisiableNy3And5_ReturnFizzBuzz()
{
var result = FizzBuzz.GetOutput(15);
Assert.That(result, Is.EqualTo("FizzBuzz"));
}
public void GetOutput_NumberDivisiableBy3_ReturnFizz()
{
var result = FizzBuzz.GetOutput(3);
Assert.That(result, Is.EqualTo("FizzBuzz"));
}
我的问题是他为什么这样写?像这样分开它有什么好处吗? 还是仅仅是个人喜好。我对单元测试和 Nunit 很陌生
【问题讨论】:
标签: c# unit-testing nunit