我有遗留代码,我需要单元测试而不会改变。有些部分是不可测试的。我正在使用Rhinomocks,我坚持如何创建静态类的模拟并验证对它的任何期望。这是示例代码:
public static class BadGuy
{
private static event Badevent;
}
public class GoodGuy
{
public GoodGuy()
{
BadGuy.Badevent += GoodGuyBadluck;
}
private GoodGuyBadluck()
{
....
}
}
答案 0 :(得分:1)
RhinoMocks不会模拟静态类。如果您可以抽象静态类,以便它们位于可模拟的类中,那么您可以使用Microsoft Moles,TypeMock或JustMock等框架来模拟它们。
答案 1 :(得分:0)
如果可以从单元测试中排除静态类,则可以创建虚假实现并插入自己的存根来监视活动。像这样:
///
/// My fake implementation
///
public static class BadGuy
{
private static event Badevent;
public static void TriggerEvent()
{
Badevent();
}
}