首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单单元测试-解析无效输入以抛出错误C# Visual Studio

简单单元测试-解析无效输入以抛出错误C# Visual Studio
EN

Stack Overflow用户
提问于 2017-05-05 11:13:12
回答 4查看 1.4K关注 0票数 1

我有一个非常基本的方法,可以将两个双精度值相除。对于单元测试,我希望包含一个无效的输入(字符串)来抛出错误消息或异常。解析值或测试失败(预期)的最简单方法是什么?

CalculatorClass.cs

代码语言:javascript
运行
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Calculator
{
    public class CalculatorClass
    {
        //METHODS
        public double Divide(double num1, double num2)
        {
            double result = num1 / num2;
            return result;
        }
    }
}

UnitTest1.cs

代码语言:javascript
运行
复制
using System;
using Calculator; //ADD REFERENCE
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace CalcMethodTest
{
    //AreEqual
    //AreNotEqual
    //AreNotSame
    //AreSame
    //Equals
    //Fail
    //Inconclusive
    //IsFalse
    //IsInstanceOfType
    //IsNotNull
    //IsNull
    //IsTrue
    //ReplaceNullChars

    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void _1_3_Test_Divide_Input_Seven_2_Output_Error()
        {
            //ARRANGE
            CalculatorClass calcObj = new CalculatorClass();
            string expectedOutput = "Error - Invalid Input";
            //ACT

            //----HERE WRONG DATA TYPE FOR TESTING----
            double result = calcObj.Divide("Seven", 2);
            //ASSERT
            Assert.AreEqual(expectedOutput, result);
        }
    }
}
EN

Stack Overflow用户

发布于 2017-05-05 12:01:53

这似乎起作用了:

代码语言:javascript
运行
复制
[TestMethod]
public void _1_3_Test_Divide_Input_Seven_2_Output_Error()
{
    //ARRANGE
    CalculatorClass calcObj = new CalculatorClass();
    string expectedOutput = "Error - Invalid Input";
    //ACT
    //----CHANGED TO STRING. THEN CAST BACK TO DOUBLE INSIDE METHOD----
    string result = calcObj.Divide("Seven", "2");
    //ASSERT
    Assert.AreEqual(expectedOutput, result);
}

方法:

代码语言:javascript
运行
复制
public string Divide(string num1, string num2)
{
    string resultMsg = "";

    try
    {
        double num1Dbl = double.Parse(num1);
        double num2Dbl = double.Parse(num2);
        double result = num1Dbl / num2Dbl;
        resultMsg = result.ToString();
        return resultMsg;
    }
    catch (FormatException error)
    {
        resultMsg = "Error - Invalid Input";
        return resultMsg;
    }
}
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43795909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档