Я должен написать модульный тест, который проверяет мою обработку исключений. Даже не уверен, как начать тестовый метод. Не уверен, должен ли я использовать что-то вроде 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);
}