【发布时间】:2013-10-23 19:49:16
【问题描述】:
我是一个单元测试新手,正在努力寻找一种测试我的存储库的好方法。我创建了一个 CustomConfigurationManager 来加载我的 Custom.Config 值。但无法弄清楚如何测试它们。
我的问题是
- 如何测试
GetUserById()里面的代码 - 如何测试我的
CustomConfigurationManager()
这是我正在尝试测试的存储库:
public class UserRepository : IUserRepository
{
public User GetUserById(string id)
{
return CustomConfigurationManager.CustomConfig.Users.FirstOrDefault(u => u.UserId == id);
}
}
public class CustomConfigurationManager
{
public static Configs CustomConfig
{
get
{
return CustomConfigLoader.LoadConfig<Configs>();
}
}
}
internal sealed class ConfigLoader
{
public static T LoadConfig<T>() where T : class
{
...
return LoadFromXML<T>();
}
}
还有 XML
<users>
<user id="Foo" name="Bar" ... />
...
</users>
我粘贴的代码是修改过的,不是真正的代码。这只是一个例子。
【问题讨论】:
-
您是否考虑过依靠集成测试来证明您的存储库有效?您可以创建一个模拟数据库来测试您的存储库方法,但您仍然需要使用真实数据库对其进行测试。
标签: c# asp.net-mvc unit-testing tdd