我怎么能模拟大会?

时间:2009-09-03 20:45:29

标签: .net mocking

是否可以模拟Assembly类?

如果是这样,使用什么框架,以及如何?

如果没有,如何为使用Assembly的代码编写测试?

1 个答案:

答案 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
}