Unit testing 如何在单元测试中访问身份验证数据?

Unit testing 如何在单元测试中访问身份验证数据?,unit-testing,authentication,oauth,jasmine,phantomjs,Unit Testing,Authentication,Oauth,Jasmine,Phantomjs,我正在学习如何测试客户端(例如,当您单击某个按钮时,它应该会发生一些事情) 我正在使用和测试客户端,做类似的事情(这或多或少是伪代码,正如示例所示): 当不需要身份验证时,这可以正常工作。我不明白的是如何在测试中处理身份验证 因此,假设我必须单击的按钮仅对登录用户可见。所以,首先我们需要登录 如何处理基本身份验证 在测试中存储用户名和密码是一种好的做法吗?我看到了关于StackOverflow的答案和其他人的答案 如何在测试中处理OAuth 如果内容(在我的例子中是示例按钮)在通过提供商(如T

我正在学习如何测试客户端(例如,当您单击某个按钮时,它应该会发生一些事情)

我正在使用和测试客户端,做类似的事情(这或多或少是伪代码,正如示例所示):

当不需要身份验证时,这可以正常工作。我不明白的是如何在测试中处理身份验证

因此,假设我必须单击的按钮仅对登录用户可见。所以,首先我们需要登录

  • 如何处理基本身份验证

    在测试中存储用户名和密码是一种好的做法吗?我看到了关于StackOverflow的答案和其他人的答案

  • 如何在测试中处理OAuth

    如果内容(在我的例子中是示例按钮)在通过提供商(如Twitter)登录后可以访问,并且它只在来自登录提供商的一些数据进入数据库后出现,我不知道如何使用OAuth实现这一点。我确实看到很多答案说,你不应该测试别人的代码,而应该测试你的代码


如果你做了一个完整的集成测试,我认为最简单的方法是设置一个测试帐户,在测试中存储/使用用户名和密码就可以了,Twitter也一样——创建一个测试帐户。另一种方法是定义你的应用程序从用户需要什么来考虑他的身份验证-通常它是一个cookie -所以让服务器端在测试开始之前为你生成一个cookie,然后用需要授权的请求发送这个cookie。因此,它基本上完全模拟了网站上的用户:单击Twitter登录按钮,然后重定向到Twitter登录表单,填写表单并重定向回网站。这是好办法吗?我以前没有在客户机上进行单元测试的经验(我只为我的一些库编写测试来测试它们的功能)。谢谢
describe("testing front-end", function () {
  it("should do something when clicking some button", function (done) {
      openPageInPhantom("my-page", function () {
          this.find("my-button").click();
          expect(something).toBe(happened);
          done();
      });
   });
});