.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
- // ...
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д