[javascript] JavaScript에서 “어설 션”이란 무엇입니까?

assertJavaScript에서 무엇을 의미합니까?

나는 다음과 같은 것을 보았다 :

assert(function1() && function2() && function3(), "some text");

그리고 그 방법 assert()이 무엇인지 알고 싶습니다 .



답변

assertJavaScript 에는 없습니다 (아직 추가하는 것에 대한 이야기가 있지만 초기 단계입니다). 아마도 하나를 제공하는 라이브러리를 사용하고있을 것입니다. 일반적인 의미는 함수에 전달 된 표현식이 false 인 경우 오류를 발생시키는 것입니다. 이것은 어설 션 검사 의 일반적인 개념의 일부입니다 . 일반적으로 어설 션은 “테스트”또는 “디버그”빌드에서만 사용되며 프로덕션 코드에서 제거됩니다.

항상 문자열을 받아 들여야하는 함수가 있다고 가정하십시오 . 누군가가 문자열이 아닌 것을 사용하여 해당 함수를 호출했는지 알고 싶습니다. 그래서 당신은 할 수 있습니다 :

assert(typeof argumentName === "string");

assert조건이 거짓이면 오류가 발생합니다.

매우 간단한 버전은 다음과 같습니다.

function assert(condition, message) {
    if (!condition) {
        throw message || "Assertion failed";
    }
}

ErrorJavaScript 엔진이 지원하는 경우 (실제로 오래된 것이 아닐 수도 있음) 객체를 사용 하면 스택 추적 등을 수집 할 수있는 이점이 있습니다.

function assert(condition, message) {
    if (!condition) {
        message = message || "Assertion failed";
        if (typeof Error !== "undefined") {
            throw new Error(message);
        }
        throw message; // Fallback
    }
}

IE8조차도 Error( stack속성이 없지만 현대 엔진을 포함한 최신 엔진이 있습니다).


답변

최신 브라우저 또는 nodejs를 사용하는 경우을 사용할 수 있습니다 console.assert(expression, object).

자세한 내용은:


답변

다른 대답은 좋습니다. ECMAScript5에 내장 된 어설 션 기능 (예 : 기본적으로 모든 곳에서 작동하는 JavaScript)은 없지만 일부 브라우저는이 기능을 제공하거나 추가 기능을 제공합니다. 이를 위해 잘 확립 된 / 인기있는 / 유지 관리되는 라이브러리를 사용하는 것이 가장 좋지만 학문적 목적으로 “가난한 사람의 주장”기능은 다음과 같습니다.

const assert = function(condition, message) {
    if (!condition)
        throw Error('Assert failed: ' + (message || ''));
};

assert(1 === 1); // Executes without problem
assert(false, 'Expected true');
// Yields 'Error: Assert failed: Expected true' in console


답변

assert()네이티브 자바 스크립트 함수가 아닙니다. 누군가가 만든 맞춤형 기능입니다. 페이지 나 파일에서 찾은 다음 다른 사람이 수행중인 작업을 확인하도록 게시해야합니다.


답변

이것을 확인하십시오 : http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-quick-and-easy-javascript-testing-with-assert/

JavaScript를 테스트하기위한 것입니다. 놀랍게도,이 코드는 5-6 줄에 불과하지만 테스트 할 때 코드를 강력하게 제어하고 제어 할 수 있습니다.

assert 함수는 두 가지 매개 변수를 허용합니다.

결과 : 테스트가 통과했는지 실패했는지를 나타내는 부울

설명 : 테스트에 대한 간단한 설명입니다.

assert 함수는 단순히 목록 항목을 만들고 테스트가 true 또는 false를 반환했는지 여부에 따라 “통과”또는 “실패”클래스를 적용한 다음 목록 항목에 설명을 추가합니다. 마지막으로, 해당 코드 블록이 페이지에 추가됩니다. 간단하지만 미친 듯이 작동합니다.


답변

여기에 assert 함수의 간단한 구현이 있습니다. 테스트하고있는 것에 대한 가치와 설명이 필요합니다.

 function assert(value, description) {
        var result = value ? "pass" : "fail";
        console.log(result + ' - ' +  description);
    };

값이 true로 평가되면 전달됩니다.

assert (1===1, 'testing if 1=1');  

false를 반환하면 실패합니다.

assert (1===2, 'testing if 1=1');


답변

어설 션이 false이면 메시지가 표시됩니다. 특히 첫 번째 인수가 false이면 두 번째 인수 (문자열 메시지)가 개발자 도구 콘솔에 기록됩니다. 첫 번째 인수가 참이면 기본적으로 아무 일도 일어나지 않습니다. 간단한 예 – Google 개발자 도구를 사용하고 있습니다.

var isTrue = true;
var isFalse = false;
console.assert(isTrue, 'Equals true so will NOT log to the console.');
console.assert(isFalse, 'Equals false so WILL log to the console.');