C#Newbie here。Max()関数のテストケースデザイン
私はそのテストケースがあるべき理解:
- シンプルで透明
- は、最小限の繰り返し
- を持って、私はまた、境界値分析の基本を理解して、100%のコードカバレッジ
を確認してください等価パーティショニングを実行しますが、以下の機能を使用すると、基本的なテストケースはどのようになりますか?
static public int Max(int a, int b, int c)
{ // Lines of code: 8, Maintainability Index: 70, Cyclomatic Complexity: 4, Class Coupling: 0
if (a > b)
if (a > c)
return a;
else
return c;
else
if (b > c)
return b;
else
return c;
}
これは私がこれまで持っているものです。..
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ConsoleApplication10;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication10.Tests
{
[TestClass()]
public class ProgramTests
{
[TestMethod()]
public void MaxTestNulls(int a, int b, int c)
{
Assert.IsNotNull(a, "The first parameter must be present.");
Assert.IsNotNull(b, "The second parameter must be present.");
Assert.IsNotNull(c, "The third parameter must be present.");
}
[TestMethod()]
public void MaxTestTypes(int a, int b, int c)
{
Assert.IsInstanceOfType(a, typeof(int));
Assert.IsInstanceOfType(b, typeof(int));
Assert.IsInstanceOfType(c, typeof(int));
}
[TestMethod()]
public void MaxTestBasics(int a, int b, int c)
{
if (a > int.MaxValue || b > int.MaxValue || c > int.MaxValue)
{
Assert.Fail();
}
if (a < int.MinValue || b < int.MinValue || c < int.MinValue)
{
Assert.Fail();
}
}
}
}
は、ここで私は完全オフベースのでしょうか?私の先生は膨らんでいないし、私に何かヒントを与えることはありません。
これは非常に役に立ちます。ありがとうございます。もう1つの質問ですが、これを私のユニットテストの中でどのように実装するのでしょうか? TestMethods()内でMax()を呼び出そうとすると、エラーが発生します。 – dotKn0ck
私は実装に混乱していると思います。 – dotKn0ck
@ dotKn0ck上記のテスト方法の実装を参照してください。 –