使用OAuth2隐式的单元测试API

时间:2018-05-19 19:11:01

标签: c# unit-testing oauth-2.0 jwt

我有一组采用JWT令牌的API,我对每个API都有单元测试覆盖率。我很容易传递JWT令牌并测试它们。 我的JWT令牌基于用户同意。 到目前为止,我使用JWT令牌,将其置于单元测试中的某个位置,然后执行它们。

在开始我的单元测试之前,有没有办法让我弹出一个对话框并获得用户同意,从而获得JWT令牌,然后继续我的单元测试?

这将允许我

  • 不是硬编码JWT令牌
  • 在具有不同角色的不同用户之间轻松更改

1 个答案:

答案 0 :(得分:0)

最后我最终使用了Selenium,最终变得有利。 下面的示例代码。

WebBrowser = new ChromeDriver();
IWebElement inputEMail, inputPassword, loginButton;

WebBrowser.Navigate().GoToUrl(
    "http://www.yourOAuthProvider.com?client_id=ABCDE&AnyAdditionalParameters");

Thread.Sleep(1 * 3000);

this.Log(this.WebBrowser.Title);

inputEMail = this.WebBrowser.FindElement(By.Name("email"));
inputEMail.SendKeys("user@example.com");

inputPassword = this.WebBrowser.FindElement(By.Name("password"));
inputPassword.SendKeys("PasswordAtExampleDotCom");

loginButton = this.WebBrowser.FindElement(By.ClassName("submit"));
loginButton.Click();

Thread.Sleep(1 * 3000);

this.Log(this.WebBrowser.Url);

WebBrowser.Close();