C# Новичок здесь.Конфигурация тестового корпуса для функции Max()
Я понимаю, что тестовые случаи должны быть:
- Простые и прозрачные
- имеют минимальные повторы
- Обеспечение 100% покрытия кода
Я также понимаю основы Boundary-стоимостного анализа и разделением эквивалентности, но с приведенной ниже функцией, какими будут основные тестовые примеры?
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();
}
}
}
}
Am Я полностью покинуть базу здесь? Мой учитель не выпучится и не даст мне никаких намеков. Какие другие тестовые примеры я мог бы использовать, это было бы полезно?
Это очень полезно, спасибо. Еще один вопрос: как мне реализовать это в своих модульных тестах? Всякий раз, когда я пытаюсь вызвать Max() внутри моего TestMethods(), он дает ошибку. – dotKn0ck
Наверное, я запутался в реализации. – dotKn0ck
@ dotKn0ck См. Выше описанную методику тестирования. –