涉及 C$ 的 FizzBuzz 游戏
FizzBuzz game involcing C$
下面的错误是:
错误和失败:
1) 测试失败:fizzbuzz.FizzBuzzTest.TestInputFifteen
预期字符串长度为 8 但实际为 4。字符串在索引 0 处不同。
预期:"FizzBuzz"
但是是:"Buzz"
----------^
在 fizzbuzz.FizzBuzzTest.TestInputFifteen () [0x00000] 在 :0
2) 测试失败:fizzbuzz.FizzBuzzTest.TestInputOneHundredAndFive
预期字符串长度为 8 但实际为 4。字符串在索引 0 处不同。
预期:"FizzBuzz"
但是是:"Buzz"
----------^
在 fizzbuzz.FizzBuzzTest.TestInputOneHundredAndFive () [0x00000] 在 :0
错误的直接原因是您在命名空间名称后省略了 {
:
namespace fizzbuzz { // <- this "{"
public class FizzBuzz {
...
}
} // <- and this "}"
然而,即使您修改了这个拼写错误,您仍将面临另一个拼写错误(您无法创建 static class、FizzBuzz
不需要构造函数等);让我们从一个测试开始,说这个:
[Test]
public void TestInputOneHundred() {
FizzBuzz fizzbuzz = new FizzBuzz(100);
Assert.AreEqual("Buzz", fizzbuzz.ToString());
}
您正在创建 FizzBuzz
实例,然后调用 ToString()
。所以你必须实现这样的东西:
namespace fizzbuzz { // <- do not forget "{"
// Not static! You (== your test) want to create instances
public class FizzBuzz {
// create, passing int (exactly as test wants)
public FizzBuzz(int value) {
Value = value;
}
// ToString will want the value
public int Value {get; set;}
// ToString to call in the test
public override ToString() {
if (Value % 5 == 0)
return "Buzz";
return Value.ToString();
}
}
}
测试通过。 运行 另一个,例如
[Test]
public void TestInputThree() {
FizzBuzz fizzbuzz = new FizzBuzz(3);
Assert.AreEqual("Fizz", fizzbuzz.ToString());
}
要通过这个你必须将 ToString()
修改为
public override ToString() {
if (Value % 5 == 0)
return "Buzz";
else if (Value % 3 == 0) // for the 2nd test
return "Fizz";
return Value.ToString();
}
以此类推,直到所有测试都通过。
下面的错误是:
错误和失败: 1) 测试失败:fizzbuzz.FizzBuzzTest.TestInputFifteen 预期字符串长度为 8 但实际为 4。字符串在索引 0 处不同。 预期:"FizzBuzz" 但是是:"Buzz" ----------^
在 fizzbuzz.FizzBuzzTest.TestInputFifteen () [0x00000] 在 :0
2) 测试失败:fizzbuzz.FizzBuzzTest.TestInputOneHundredAndFive 预期字符串长度为 8 但实际为 4。字符串在索引 0 处不同。 预期:"FizzBuzz" 但是是:"Buzz" ----------^
在 fizzbuzz.FizzBuzzTest.TestInputOneHundredAndFive () [0x00000] 在 :0
错误的直接原因是您在命名空间名称后省略了 {
:
namespace fizzbuzz { // <- this "{"
public class FizzBuzz {
...
}
} // <- and this "}"
然而,即使您修改了这个拼写错误,您仍将面临另一个拼写错误(您无法创建 static class、FizzBuzz
不需要构造函数等);让我们从一个测试开始,说这个:
[Test]
public void TestInputOneHundred() {
FizzBuzz fizzbuzz = new FizzBuzz(100);
Assert.AreEqual("Buzz", fizzbuzz.ToString());
}
您正在创建 FizzBuzz
实例,然后调用 ToString()
。所以你必须实现这样的东西:
namespace fizzbuzz { // <- do not forget "{"
// Not static! You (== your test) want to create instances
public class FizzBuzz {
// create, passing int (exactly as test wants)
public FizzBuzz(int value) {
Value = value;
}
// ToString will want the value
public int Value {get; set;}
// ToString to call in the test
public override ToString() {
if (Value % 5 == 0)
return "Buzz";
return Value.ToString();
}
}
}
测试通过。 运行 另一个,例如
[Test]
public void TestInputThree() {
FizzBuzz fizzbuzz = new FizzBuzz(3);
Assert.AreEqual("Fizz", fizzbuzz.ToString());
}
要通过这个你必须将 ToString()
修改为
public override ToString() {
if (Value % 5 == 0)
return "Buzz";
else if (Value % 3 == 0) // for the 2nd test
return "Fizz";
return Value.ToString();
}
以此类推,直到所有测试都通过。