我正在编写一些单元测试,我需要能够断言是否已根据设置数据调用方法。
例如
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/