模拟在testng测试中通过CAS登录的用户

时间:2016-05-30 11:20:50

标签: java unit-testing mocking testng cas

我们正在使用RESTEasy Server Side Mock Framework为我们的java apis编写单元测试。作为测试的一部分,我们还需要模拟用户登录。有些部分必须由user1完成,然后是user2,然后是user1。

在实际应用程序中,登录通过CAS server处理,即cas web服务器可用。

在测试中,我们可以使用模拟框架模拟RESTEasy服务。 cas登录REST api's are documented,但它们将是单独的webapp的一部分,而不是涉及用户1和用户2的业务webapp。

我们如何模拟CAS登录服务而不必在单元测试期间启动cas服务器?

如果问题不明确,请告诉我,我可以添加更多详细信息。

2 个答案:

答案 0 :(得分:1)

您可能想要查看pac4j项目。有一个嵌入式CAS服务器可以运行几个测试。

答案 1 :(得分:0)

您的被测系统(SUT)需要能够与您控制的真实CAS服务器或假的服务器通信。通常,这是通过使用依赖注入与主生产配置和一个或多个测试配置来管理的。在此类测试的测试配置中,您的SUT将配置为使用模拟CAS服务器,您的测试应该能够配置所述模拟,以便您可以定义在给定来自SUT的某些请求时它应如何响应。

还有其他选择(例如,启动可嵌入的CAS服务器或模拟的服务器),但这更多地转移到集成测试而不是单元测试。