是否可以模拟Assembly
类?
如果是这样,使用什么框架,以及如何?
如果没有,如何为使用Assembly
的代码编写测试?
答案 0 :(得分:9)
TypeMock非常强大。我想它可以做到。对于其他模拟框架,如Moq或Rhino,您将需要使用其他策略。
Rhino或Moq战略:
每个示例:您使用 Asssembly 类来获取程序集的全名。
public class YourClass
{
public string GetFullName()
{
Assembly ass = Assembly.GetExecutingAssembly();
return ass.FullName;
}
}
从界面_Assembly
派生的 程序集 类。因此,您可以直接注入接口,而不是直接使用 Assembly 。然后,很容易模拟测试界面。
修改后的课程:
public class YourClass
{
private _Assembly _assbl;
public YourClass(_Assembly assbl)
{
_assbl = assbl;
}
public string GetFullName()
{
return _assbl.FullName;
}
}
在测试中,您模拟_Assembly
:
public void TestDoSomething()
{
var assbl = MockRepository.GenerateStub<_Assembly>();
YourClass yc = new YourClass(assbl);
string fullName = yc.GetFullName();
//Test conditions
}