Как написать тестовый метод для проверки обработки исключений, которые не допускают отрицательных чисел? - PullRequest
0 голосов
/ 12 апреля 2020

Я должен написать модульный тест, который проверяет мою обработку исключений. Даже не уверен, как начать тестовый метод. Не уверен, должен ли я использовать что-то вроде Assert.ThrowsException или ExpectedException. Код, который я использую из моей программы:

    namespace Cups_To_Ounces_Tutorial
{
    public partial class cupsToOuncesForm : Form
    {
        public cupsToOuncesForm()
        {
            InitializeComponent();
        }

     // The CupsToOunces method accepts a number of cups as an argument and returns the equivalent number of fluid ounces.
        static public double CupsToOunces(double cups)
        {
            return cups * 8.0;
        }

        private void convertButton_Click(object sender, EventArgs e)
        {
            try
            {
                // Variables to hold cups and ounces
                double cups, ounces;

                // Get the number of cups
                if (double.TryParse(cupsTextBox.Text, out cups))
                {
                    if (!cupsTextBox.Text.StartsWith("-"))
                    {
                        // Convert the cups to ounces
                        ounces = CupsToOunces(cups);

                        // Display the ounces.
                        ouncesOutputLabel.Text = ounces.ToString("n1");
                    }
                    else
                    {
                        MessageBox.Show("Enter a positive number");
                    }
                }
                else
                {
                    // Display an error message.
                    MessageBox.Show("Enter a valid number.");
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void exitButton_Click(object sender, EventArgs e)
        {
            // Close the form.
            this.Close();
        }
    }
}

Я написал другие методы тестирования для проверки конкретных c результатов, но изо всех сил пытался найти правильный способ проверки обработки исключений.

    namespace CtoOTests
{
    [TestClass]
    public class CtoOTests
    {
        [TestMethod]
        public void CupsToOunces_ValidReturn()
        {
            double cups = 3;
            double expected = 24;

            double actual = Cups_To_Ounces_Tutorial.cupsToOuncesForm.CupsToOunces(cups);

            Assert.AreEqual(expected, actual);
        }

        [TestMethod]
        public void CupsToOunces_ValidHalfReturn()
        {
            double cups = .5;
            double expected = 4;

            double actual = Cups_To_Ounces_Tutorial.cupsToOuncesForm.CupsToOunces(cups);

            Assert.AreEqual(expected, actual);
        }

        [TestMethod]
        public void CupsToOunces_ValidThirdReturn()
        {
            double cups = .33;
            double expected = 2.6;

            double actual = Cups_To_Ounces_Tutorial.cupsToOuncesForm.CupsToOunces(cups);

            Assert.AreEqual(expected, actual, 0.1);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...