对不同用户表现不同的软件进行单元测试的最佳方法是什么?

时间:2009-04-14 13:12:59

标签: unit-testing

正如问题标题所述,根据用户当前登录的情况,在应用程序上执行单元测试的最佳方法是什么?

此外,对于维护内部状态信息的应用程序,执行测试和管理所有测试的最佳方法是什么?

4 个答案:

答案 0 :(得分:2)

如果用户是指系统用户,例如Windows登录 - 然后进行单元测试,最好将代码与此依赖关系解耦。

我的意思是让你的代码有一个内部的用户概念,在单元测试中很容易设置。然后,大多数代码只会知道这个内部概念,并且可以在不担心真正登录的情况下进行测试。

然后,最小化要测试的更难的层(将系统用户和您从中获取的所有内容(例如文件夹位置,权限等)映射到您的内部登录的层)。 然后可以使用某种类型的可以处理高级别登录的验收测试来测试该层。

答案 1 :(得分:1)

为不同类型的用户创建单独的测试并模拟他们记录(或记录)。这样,您可以根据用户权限测试每种类型的用户应该是什么行为。

如果应用程序的内部状态也起作用,那么你几乎要坚持为每个(合理的)场景创建测试。

答案 2 :(得分:1)

我假设有一些提供商说“此用户可以执行此操作”或“对此用户执行此操作”。

如果是这种情况,您只需为该提供程序创建一个存根,并让它为您要测试的情况返回不同的内容。

如果不是这样,我会创建这样的提供者。

状态也是如此:将状态存储在状态保持类中并询问它处于什么状态。在测试环境中,为它创建存根。

当然,您也可以对状态保持类进行单元测试。

答案 3 :(得分:0)

如果定义行为的仅仅是登录用户类型,则只需为每个用户类型编写一个测试[最终得到n个测试; n是用户类型的数量]。

如果它是某个内部系统状态和用户类型之间的组合,则为每个用户类型的每个状态编写一个测试[最终得到n * m测试; n是用户类型的数量,m是内部系统状态的数量]。