2

我正在构建 mvc3 应用程序,它应该为大约 1000-2000 个并发用户提供服务,我实现了 Castle Active Record 和简单的存储库模式,现在我需要对所有这些进行单元测试,它不会在并发和多线程环境(如 iis)中崩溃. 我该怎么做?

我正在使用 nunit 测试框架。

我的仓库:

//interface
public interface IAbstractRepository<T> where T : class
{
    void Create(T model);
    void Update(T model);
    void Delete(T model);
    int Count();

    T FindById(object id);
    T FindOne(params ICriterion[] criteria);
    IList<T> FindAll();
    IList<T> FindAllByCriteria(params ICriterion[] criteria);
}

//具体实现

public class AbstractRepository<T> : IAbstractRepository<T> where T : class
{
    void IAbstractRepository<T>.Create(T model)
    {
        ActiveRecordMediator<T>.Save(model);
    }

    void IAbstractRepository<T>.Update(T model)
    {
        ActiveRecordMediator<T>.Update(model);
    }

    void IAbstractRepository<T>.Delete(T model)
    {
        ActiveRecordMediator<T>.Delete(model);
    }

    int IAbstractRepository<T>.Count()
    {
        return ActiveRecordMediator<T>.Count();
    }

    T IAbstractRepository<T>.FindById(object id)
    {
        return ActiveRecordMediator<T>.FindByPrimaryKey(id);
    }

    T IAbstractRepository<T>.FindOne(params ICriterion[] criteria)
    {
        return ActiveRecordMediator<T>.FindOne(criteria);
    }

    IList<T> IAbstractRepository<T>.FindAll()
    {
        return ActiveRecordMediator<T>.FindAll();
    }

    IList<T> IAbstractRepository<T>.FindAllByCriteria(params ICriterion[] criteria)
    {
        return ActiveRecordMediator<T>.FindAll(criteria);
    }
}
4

1 回答 1

3

这不再是你想要做的单元测试。这是一个负载测试。有一些工具可以让您记录一些场景,然后模拟对执行此场景的 Web 应用程序的并发访问:

于 2012-05-08T08:27:34.103 回答