c# - 如何对包含静态方法的方法进行单元测试?

标签 c# unit-testing rhino-mocks httppostedfilebase

这可以做到吗?这是我正在测试的方法:

public void SaveAvatarToFileSystem()
{
  Directory.CreateDirectory(AvatarDirectory);
  _file.SaveAs(FormattedFileName);
}

在我的单元测试中,我正在使用 Rhino.Mocks,并且我想验证 _file.SaveAs() 是否被调用。我已经模拟了 _file (这是一个 HttpPostedFileBase 对象)并将其注入(inject)到该方法的类构造函数中。我想运行此单元测试,但实际上没有进行 Directory.CreateDirectory 调用。这可能吗?

最佳答案

It is not possible to mock a static method using Rhino Mocks .

但是,这是可以做到的。 Microsoft MolesTypeMock有这个能力。

我尝试过使用 Moles,效果很好。它为您生成一个模拟程序集,并且您可以在运行时用委托(delegate)替换静态方法。

关于c# - 如何对包含静态方法的方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4090533/

相关文章:

c# - Entity Framework 4 多对多不删除实际实体

c# - C#读取和解析Excel文件

c# - 如何模拟/ stub Nhibernate QueryOver 调用?

c# - 如何修复挂起 TeamCity 构建的多线程单元测试?

c# - 错误 : Could not load file or assembly 'Microsoft. Practices.ServiceLocation,版本 = 1.0.0.0

c# - yield 看不懂的功能

c++ - Google 测试中的 BOOST_CHECK_EQUAL_COLLECTIONS

c# - 在编写单元测试时断言 "nothing happened"

java - 适当的方法封装用于单元测试

c# - 在单个方法调用中改变对犀牛模拟的期望