Я думаю, что в настоящее время не так много пользователей Chutzpah, но, надеюсь, я найду некоторых здесь.
Я работаю над демонстрацией Павлова, чтобы сравнить ее с традиционными тестами QUnit и показать моей команде преимущества BDD. По пути я наткнулся на Чуцпу и подумал, что было бы здорово интегрироваться в мой проект.
Когда я щелкаю правой кнопкой мыши и запускаю тесты в моем браузере, они оба работают нормально, но если я щелкаю правой кнопкой мыши и запускаю тесты в VS, я получаю эту ошибку:
------ Test started: File: C:\Users\U0120711\Documents\Visual Studio 2010\Projects\Behave\StaticContent\tests\Calculator\calculatorTest.js ------
Chutzpah Error Occured:
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at Chutzpah.TestResultsBuilder.Build(BrowserTestFileResult browserTestFileResult)
at Chutzpah.TestRunner.RunTestsFromHtmlFile(String headlessBrowserPath, TestOptions options, TestContext testContext, List`1 testResults, ITestMethodRunnerCallback callback)
at Chutzpah.TestRunner.RunTests(IEnumerable`1 testPaths, TestOptions options, ITestMethodRunnerCallback callback)
While Running:C:\Users\U0120711\Documents\Visual Studio 2010\Projects\Behave\StaticContent\tests\Calculator\calculatorTest.js
========== Total Tests: 0 passed, 0 failed, 0 total ==========
Вот мои тесты:
Спецификация Павлова:
/// <reference path="../../js/External/jQuery/jquery-1.7.1.js" />
/// <reference path="../../js/External/qunit/qunit.js" />
/// <reference path="../../js/External/pavlov/pavlov.js" />
/// <reference path="../../js/Calculator/Calculator.js" />
pavlov.specify("The behavior of a calculator", function () {
describe("Calculator", function () {
var calculator;
before(function () {
calculator = new Calculator();
});
given([2, 0], [3, 0], [4, 0]).
it("returns zero when multiplying by zero", function (x, y) {
assert(0).equals(calculator.multiply(x, y));
});
given([2, 1], [3, 1], [4, 1]).
it("returns the multiplicand when multiplying by one", function (x, y) {
assert(x).equals(calculator.multiply(x, y));
});
});
});
Быстрый тест:
/// <reference path="../../js/External/jQuery/jquery-1.7.1.js" />
/// <reference path="../../js/External/qunit/qunit.js" />
/// <reference path="../../js/Calculator/Calculator.js" />
var calculator;
module("Calculator", {
setup: function () {
calculator = new Calculator();
}
});
$.each([[2, 0], [3, 0], [4, 0]], function (index, pair) {
test("given " + pair[0] + "," + pair[1] + ", returns zero when multiplying by zero", function () {
equal(0, calculator.multiply(pair[0], pair[1]));
});
});
$.each([[2, 1], [3, 1], [4, 1]], function (index, pair) {
test("given " + pair[0] + "," + pair[1] + ", returns the multiplicand when multiplying by one", function () {
equal(pair[0], calculator.multiply(pair[0], pair[1]));
});
});
Есть ли что-то, что я делаю в своих тестах, что может вызвать ошибку VS? Или есть где-то исправление ошибки, которого я еще не нашел?
Любые советы приветствуются, но, пожалуйста, воздержитесь от комментариев по поводу моей общей стратегии тестирования, так как я хорошо знаю о недостатках. Это только для примера:)