【发布时间】:2010-01-19 19:57:26
【问题描述】:
我想知道我应该测试什么以及应该如何测试 IRepository。
目前我在我的域中创建了一个 MemoryRepository,我正在使用假数据对其进行测试。我不确定这是否正确。首先创建一些数据然后测试存储库是否正确返回它感觉有点奇怪。
这就是我的 MemoryRepository 的样子:
public class MemoryRepositoryUser : IRepositoryUser
{
List<User> fakeUsers;
public MemoryRepositoryUser(List<User> fakeUsers)
{
this.fakeUsers = fakeUsers;
}
public IEnumerable<User> GetAll()
{
return fakeUsers;
}
public User GetById(string id)
{
return GetAll().Where(u => u.Username == id).Single();
}
}
这些是我写的一些测试:
[TestFixture]
class TestMemoryRepositoryUser
{
private MemoryRepositoryUser repository;
public TestMemoryRepositoryUser(){
repository = new MemoryRepositoryUser(FakeData.GetFakeUsers());
}
[Test]
public void Get_All_Users()
{
var Users = repository.GetAll();
Assert.IsNotNull(Users);
Assert.IsInstanceOf(typeof(IEnumerable<User>), Users);
Assert.AreEqual(3, Users.Count());
}
[Test]
public void Get_User_By_ID()
{
var Username = "Bob";
var User = repository.GetById(Username);
Assert.IsNotNull(User);
Assert.AreEqual(Username, User.Username);
}
}
我对测试代码还很陌生,而且我大多对我应该测试的内容有疑问。我想测试 MemoryRepository 可以帮助我在界面中创建我需要的所有功能,而无需与数据库对话?
【问题讨论】:
-
我不认为这是重复的,它确实与另一个问题相反。
标签: c# asp.net-mvc testing tdd