.net 如何对这个类进行单元测试?
我是VisualStudio单元测试框架和单元测试的新手.net 如何对这个类进行单元测试?,.net,unit-testing,c#-4.0,.net,Unit Testing,C# 4.0,我是VisualStudio单元测试框架和单元测试的新手 class Request { private Dictionary<string, List<int>> processedText = new Dictionary<string, List<int>>(); Public bool Method1(string input) { //intialize processedText to som
class Request
{
private Dictionary<string, List<int>> processedText = new Dictionary<string, List<int>>();
Public bool Method1(string input)
{
//intialize processedText to some values based on input.
}
public int Method2()
{
//use the processedText.
}
}
类请求
{
private Dictionary processedText=新字典();
公共布尔方法1(字符串输入)
{
//根据输入将processedText初始化为某些值。
}
公共int方法2()
{
//使用processedText。
}
}
现在我不知道如何对这段代码进行单元测试
我的问题是,拥有一个全局变量,初始化它并在其他方法中使用,这是一个好的编程实践吗
我的代码单元是可测试的吗?任何有助于磨练我的单元测试技能的链接都会非常有用。我读了一些教程,但从未遇到过这种情况。- 拥有类级别的私有变量并不会阻止您这样做 单元测试。但是有了一个静态变量就可以了李>
- 我看不到 从方法返回值或输出参数。那你会怎么做 是否正在使用验证结果李>
- 否则请确保代码 是独立的,在依赖的情况下使用适当的模拟对象 对象,那么它应该是alrite
- 安排:这是您设置测试用例的地方,也就是说,将传递给方法的输入值,任何类初始化代码(可能通过模拟依赖项等)
- 动作:这是您使用设置的值的排列执行单元测试的地方,也是您获得结果的地方
- 断言:这是验证结果的步骤。换句话说,你的代码通过测试了吗
[TestClass]
public class CalculatorTest
{
[TestMethod]
public void When_Two_Numbers_Are_Passed_To_The_Add_Method_The_Result_Should_Be_The_Addition_Of_The_Two_Numbers()
{
// Arrange
double x = 1.0;
double y = 2.0;
double expectedResult = 3.0;
ICalculator calculator = new Calculator();
// Act
double actualResult = calculator.Add(x, y);
// Assert
Assert.AreEqual(expectedResult, actualResult);
}
}
下面是将通过测试的类:
public class Calculator : ICalculator
{
public double Add(double x, double y)
{
return x + y;
}
}
public interface ICalculator
{
double Add(x, y);
}
现在,“单元测试”指的是TDD吗?一个方法返回bool,另一个返回int.ok。与您的看法相反,自动化单元测试非常简单。事实上,您可以自己编写一些类并实现框架。但是VST和nUnit等已经为您简化了这个过程。它是另一段代码,提供参数并检查结果。您需要确保将所有测试用例作为单元测试包含在这里。看看我通过谷歌找到的这个链接,这个链接解释了nUnit的情况,让我了解一下。看起来你在我发布答案之前编辑了你的问题。您发布的原始代码中的两个方法都返回了
void
,这就是为什么我认为您的代码不可进行单元测试,除非您正在编写集成测试。我希望我提供的示例仍然有帮助。请注意,这是一个实例变量,而不是全局变量(是的,您可以在一个方法中初始化它,然后在另一个方法中使用它)。