我是 Cypress 和 Azure AD 的新手,但我一直按照此处描述的步骤在使用 Azure AD 的现有 Angular 应用程序上创建 Cypress 测试。它提到他们使用 ADAL,但我们的应用程序使用 MSAL,它说应该是相似的。但是,我正在努力让它发挥作用。到目前为止,这是我的登录功能:
const tenant = 'https://login.microsoftonline.com/{my_tenant_id}/';
const tenantUrl = `${tenant}oauth2/token`;
const clientId = '{my_app_id}';
const clientSecret = '{my_secret}';
const azureResource = 'api://{my_app_id}';
const knownClientApplicationId = '{client_application_id_from_manifest}';
const userId = '{user_identifier}';
export function login() {
cy.request({
method: 'POST',
url: tenantUrl,
form: true,
body: {
grant_type: 'client_credentials',
client_id: clientId,
client_secret: clientSecret,
resource: azureResource
}
}).then(response => {
const Token = response.body.access_token;
const ExpiresOn = response.body.expires_on; …Run Code Online (Sandbox Code Playgroud) azure-active-directory angular angular-router-guards cypress
我今天继承了一些旧的存储过程,并且遇到了几个遵循这种一般模式的例子,其中@Test有一些INT值:
IF @Test IS NOT NULL AND @Test > 0
-- do something...
Run Code Online (Sandbox Code Playgroud)
我的理解是,如果@Test是NULL,那么它没有价值,并且不大于,小于或甚至等于零.因此,NULL在上面的代码中测试是多余的:
IF @Test > 0
-- do something...
Run Code Online (Sandbox Code Playgroud)
第二个版本似乎工作正常,IHMO更具可读性.
所以,我的问题是:我对NULL这种情况下不必要的理解是否正确,或者是否有一些明显的用例我在这里忽略了它可能会出现可怕的错误?
注意:在某些情况下,显然意图是检查是否存在值,并且我已经将这些更改为IF EXISTS......我的问题更关注上面概述的一般情况.