Структуры sigevent
sigev_notify_function
не ожидают объект std::function
, он ожидает указатель функции:
void (*sigev_notify_function) (union sigval);
Объект std::function
может быть создан неявно из указателя функции, но обратное невозможно. Вы должны использовать указатель на фактическую функцию.
Этого можно добиться, используя callcbk.target
, чтобы получить указатель на исходный указатель функции, но тогда callcbk
несколько бессмысленно.
Хорошо, вот что-то, что я просто варил на основе некоторой более ранней работы. Я надеюсь, что это удовлетворило бы Ваши потребности.
Легкая Universal среда тестирования JavaScript
jsUnity является легкой универсальной средой тестирования JavaScript, которая является агностиком контекста. Это не полагается ни на какие возможности браузера и поэтому может быть выполнено в HTML, ASP, WSH или любом другом контексте, который использует JavaScript/JScript/ECMAScript.
<pre>
<script type="text/javascript" src="../jsunity.js"></script>
<script type="text/javascript">
function sampleTestSuite() {
function setUp() {
jsUnity.log("set up");
}
function tearDown() {
jsUnity.log("tear down");
}
function testLessThan() {
assertTrue(1 < 2);
}
function testPi() {
assertEquals(Math.PI, 22 / 7);
}
}
// optionally wire the log function to write to the context
jsUnity.log = function (s) { document.write(s + "</br>"); };
var results = jsUnity.run(sampleTestSuite);
// if result is not false,
// access results.total, results.passed, results.failed
</script>
</pre>
Вывод вышеупомянутого:
2 tests found set up tear down [PASSED] testLessThan set up tear down [FAILED] testPi: Actual value does not match what's expected: [expected] 3.141592653589793, [actual] 3.142857142857143 1 tests passed 1 tests failed
Вы могли бы хотеть проверить Тест YUI. Это должно хорошо работать без DOM.
Является JsUnit какой-либо справкой? Это разработано для выполнения в браузере, но это выглядит относительно абстрактным.
Также есть JSpec
JSpec - чрезвычайно маленькая, но очень мощная среда тестирования. Используя собственную грамматику и препроцессор, JSpec может работать так, как никакая другая среда тестирования JavaScript. Это включает в себя множество полезных сокращенных литералов, очень интуитивно понятный / читаемый синтаксис, а также не загрязняет прототипы основных объектов.
JSpec также может запускаться различными способами, например, через терминал с поддержкой Rhino, через браузеры, использующие DOM или консольные форматеры, или, наконец, с помощью среды тестирования Ruby JavaScript, которая запускает браузеры в фоновом режиме, отправляя отчеты на терминал.