添加、更新、删除的 xUnit 通用存储库测试
xUnit general repository testing of add, update, delete
是否值得对存储库添加、更新或删除方法进行单元测试?
public void Update(TEntity entity)
{
dbSet.Update(entity);
}
和用法:
UnitOfWork.NeakReports.Update(neakReport);
我问是因为所有东西都是moqed所以我不知道它是否是必须的然后如何。
您可以将单元测试视为安全网。
所以,答案在很大程度上取决于您想要什么样的安全网,例如:
- 不要改变输入而是将其原样传递给底层组件
- wrapper 调用正确的方法(wrapper 的
Update
不应调用 wrapped 的 Delete
)
- wrapper 仅调用依赖项上的预期方法,不调用任何其他方法
...
换句话说,如果将来这个薄包装纸有可能变厚,那么您要通过打破一些测试来确保它发生。如果代码可以在没有通知的情况下潜入,那么它可能会造成伤害。
你的偏执程度将决定多少测试是足够的:)
是否值得对存储库添加、更新或删除方法进行单元测试?
public void Update(TEntity entity)
{
dbSet.Update(entity);
}
和用法:
UnitOfWork.NeakReports.Update(neakReport);
我问是因为所有东西都是moqed所以我不知道它是否是必须的然后如何。
您可以将单元测试视为安全网。
所以,答案在很大程度上取决于您想要什么样的安全网,例如:
- 不要改变输入而是将其原样传递给底层组件
- wrapper 调用正确的方法(wrapper 的
Update
不应调用 wrapped 的Delete
) - wrapper 仅调用依赖项上的预期方法,不调用任何其他方法 ...
换句话说,如果将来这个薄包装纸有可能变厚,那么您要通过打破一些测试来确保它发生。如果代码可以在没有通知的情况下潜入,那么它可能会造成伤害。
你的偏执程度将决定多少测试是足够的:)