以下是docs的示例:
{
setUp: function () {
this.xhr = sinon.useFakeXMLHttpRequest();
var requests = this.requests = [];
this.xhr.onCreate = function (xhr) {
requests.push(xhr);
};
},
tearDown: function () {
this.xhr.restore();
},
"test should fetch comments from server" : function () {
var callback = sinon.spy();
myLib.getCommentsFor("/some/article", callback);
assertEquals(1, this.requests.length);
this.requests[0].respond(200, { "Content-Type": "application/json" },
'[{ "id": 12, "comment": "Hey there" }]');
assert(callback.calledWith([{ id: 12, comment: "Hey there" }]));
}
}
这很有效,但它不允许我使用xhr.send()
调用来检查我的代码实际发送的内容,这对我来说不是很有用。
因为我在节点env中进行单元测试,所以我没有真正的XMLHttpRequest对象,所以像nock这样的东西不起作用。
Sinon似乎可能但我找不到我需要的东西 - 有没有办法看看res.send()调用实际发送的是什么而不是假装?
答案 0 :(得分:0)
解决。通过检查"test should fetch comments from server" : function () {
var callback = sinon.spy();
myLib.getCommentsFor("/some/article", callback);
var body = JSON.parse(this.requests[0].requestBody);
assert(body.XYX)...
}
元素可以使用它。
struct A { };
struct B {
B(const B&) = delete;
B(B&&) = default; // how to return B - pt 1 : move constructor
explicit B(const A&) {}
};
void foo(B) {}
B bar() {
A a;
return B(a); // how to return B - pt 2 : explcitly convert it
}
int main() {
A a;
foo(B(a)); // how to pass a - explicit conversion
}