我正在尝试测试的不是状态,而是测试某些代码的行为。如果调用某个方法,我可以使用MSTest断言吗?我可以使用模拟框架吗?
特别是现在我想检查一个私有对象是否被实例化,而不是被迫公开它只是为了测试,但是检查是否有任何方法被调用的解决方案对于将来的需要是很好的:)
答案 0 :(得分:0)
而不是测试您想要真正测试方法的行为的方法。这意味着要看看你的方法做了什么,并编写一个测试或制造商确定它改变的数据确实改变了。例如:
public void Bigmethod()
{
newUpCollections();
CreateDatabaseConnection();
FlagBadData();
}
如果您想验证newUpCollections是否有效:
[TEST]
public void BigMethod_WhenCalled_RecreatesCollections()
{
BigMethod()
Assert.IsNotNull(Class.Collections);
}
如果您的方法没有任何改变任何内容的行为,您可能不需要对其进行测试,甚至可能在软件中不需要它。那么看一下你的方法,它改变了什么数据,你能监视数据是否真的被改变了吗?