Mocha是一種在Node.js和瀏覽器端的JavaScript測試框架。它提供了一個易於閱讀和理解的BDD (行為驅動開發) 和 TDD (測試驅動開發) 語法,方便開發人員進行測試用例的創建和管理。
Mocha允許用戶撰寫測試用例,包括定義測試用例的描述、執行測試用例,並使用不同的斷言庫來檢查預期的輸出是否與實際輸出相同。以下是一個簡單的示例:
describe('加法測試', function() {
it('1 + 1 應該等於 2', function() {
assert.equal(1 + 1, 2);
});
});
上述代碼定義了一個描述測試用例的 “describe” 區塊,其中包含了一個執行測試的 “it” 區塊。在 “it” 區塊中,使用了斷言庫 “assert”,檢查 1+1 是否等於 2。
總體而言,Mocha是一個強大的JavaScript測試框架,可以幫助開發人員進行單元測試、集成測試等多種測試類型,對於確保軟件質量非常有助益。
範例:
const arr = [2, 4, 6, 8];
const arr2 = [1, 3, 4, 7];
console.log(isAllEven(arr)); // true
console.log(isAllEven(arr2)); // false
答案:
function isAllEven(arr) {
return arr.every(num => num % 2 === 0);
}
範例:
console.log(reverseString('hello')); // 'olleh'
console.log(reverseString('world')); // 'dlrow'
答案:
function reverseString(str) {
return str.split('').reverse().join('');
}
範例:
const arr = [1, 2, 3, 4, 5];
console.log(isSumInArray(arr, 7)); // true
console.log(isSumInArray(arr, 10)); // false
答案:
function isSumInArray(arr, sum) {
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] + arr[j] === sum) {
return true;
}
}
}
return false;
}
範例:
console.log(countCharacters('hello')); // {h: 1, e: 1, l: 2, o: 1}
console.log(countCharacters('world')); // {w: 1, o: 1, r: 1, l: 1, d: 1}
答案:
function countCharacters(str) {
const result = {};
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (!result[char]) {
result[char] = 1;
} else {
result[char]++;
}
}
return result;
}
範例:
const arr = [
{name: 'Alice', age: 20},
{name: 'Bob', age: 30},
{name: 'Charlie', age: 40}
];
console.log(getAverageValue(arr, 'age')); // 30
答案:
function getAverageValue(arr, propertyName) {
const sum = arr.reduce((acc, cur) => {
return acc + cur[propertyName];
}, 0);
return sum / arr.length;
}