.NET 4.x Доступ к классу с Unit Test Project - C#
Формулировка задачи:
Задание:
1.
Создайте просто строковый калькулятор с методом int Add(string numbers).1.1.
Метод может принимать 0,1 или 2 аргумента и возвращать их сумму. Например “” или “1” или “1,2” (для пустой строки метод должен вернуть 0).1.2.
Начните писать тест с передачи пустой строки, потом одного аргумента и потом 2-х. Для выполнения, я создал проектCalculator
. Там же добавил классMyCalculator
и реализовал функциюint Add(string numbers)
:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Calculator
{
class MyCalculator
{
public int Add(string numbers)
{
if (numbers == "")
return 0;
char delimiter = ',';
int Sum = 0;
string[] subStrings = numbers.Split(delimiter);
foreach (var subString in subStrings)
Sum += Convert.ToInt32(subString);
return Sum;
}
}
}CalculatorTest
). В Reference установилNUnit.framework
(так требуется в задании) и отредактировал тестовый класс (TestCalculator
):using System;
using NUnit.Framework;
namespace CalculatorTests
{
[TestFixture]
public class TestCalculator
{
[Test]
public void Add_CallMethod_ReturnsSum()
{
//arrange
// MyCalculator calc(); <==== ERROR!
// ...
}
}
}для написания
юнит-теста
метода int Add(string numbers) класса MyCalculator нужен доступ к этому классу. Как его получить?P.S. В методичке к лабе есть пример всего процесса построение тестов. Только там основной проект был в виде .dll.
Решение задачи: «.NET 4.x Доступ к классу с Unit Test Project»
textual
Листинг программы
namespace CalculatorTests
{
[TestFixture]
public class TestCalculator
{
[Test]
public void Add_CallMethod_ReturnsSum()
{
//arrange
var calculator = new Calculator.MyCalculator();
// act
// ...
// assert
// ...
}
}
}