c# - 在 VS2005 单元测试中是否可以断言已调用方法?

标签 c# unit-testing visual-studio-2005

我正在编写一些单元测试,我需要能够断言是否已根据设置数据调用方法。

例如

 String testValue = "1234";
 MyClass target = new MyClass();
 target.Value = testValue;

 target.RunConversion();

 // required Assertion
 Assert.MethodCalled(MyClass.RunSpecificConversion);

然后会有第二个测试,其中 testValue 为 null,我想断言该方法尚未被调用。


特定测试场景的更新:

我有一个表示从 XML 反序列化的信息的类。这个类包含一些我需要转换成我自己的类的信息。

XML 类是关于一个人的信息,包括帐户信息和不同字段中的一些电话号码。

我有一个方法可以从 XML 类创建我的帐户类,还有一个方法可以从 XML 类创建正确的电话类。我对这些方法中的每一个都进行了单元测试,但我想测试一下,当调用帐户转换时,它会运行电话转换,因为结果实际上是帐户类的属性。

我知道我可以在输入正确信息后测试帐户类的属性,但是我有其他嵌套属性,这些属性进一步嵌套并且测试整个树可能会变得非常麻烦。我想我可以让每个级别测试它下面的下一个级别,但理想情况下,我想确保调用正确的转换方法并且代码在实现中不会重复。

最佳答案

如果不使用 Moq、TypeMock、RhinoMocks 等可以验证您的期望的 Mocking 框架,我会考虑解析堆栈跟踪。

MSDN documentation her e 应该有所帮助。

善良,

关于c# - 在 VS2005 单元测试中是否可以断言已调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1762292/

相关文章:

unit-testing - 从 NUnit 向 TestResult.xml 文件添加更多信息

scala - 单元测试 Spark 数据帧转换链接

c# - 测试类转换方法的正确方法

c# - "Find All References"在一个解决方案中损坏

c# - 当我的 where 子句将包含 LIST 时使用 LINQ

c# - 如何在 C# 中获取 IP 的自治系统编号 (ASN) 和 Netblock 所有者?

C# XmlWriter 命名空间问题

c# - 如何将可选参数传递给 ActionResult

c++ - 在 VS 2005 中仅转储部分内存

c# - TimeZoneInfo - 为什么我似乎不能创建它的实例?