Javascript 从Jasmine测试调用web服务
我正在尝试为一些web服务编写一些黑盒测试。为了做到这一点,我使用茉莉花。我想知道如何从Jasmine调用web服务。我目前有以下设置:Javascript 从Jasmine测试调用web服务,javascript,jasmine,Javascript,Jasmine,我正在尝试为一些web服务编写一些黑盒测试。为了做到这一点,我使用茉莉花。我想知道如何从Jasmine调用web服务。我目前有以下设置: describe('Web Service', function () { describe('-> endpoint', function() { describe('-> create', function() { var response = null; beforeEach(function(done)
describe('Web Service', function () {
describe('-> endpoint', function() {
describe('-> create', function() {
var response = null;
beforeEach(function(done) {
// execute a call to the web service here
if (done) {
done();
}
});
it('should run correctly', function(done) {
if (done) {
done();
}
});
});
});
});
如何从Jasmine调用web服务
谢谢大家! 您应该使用类似于模拟响应的东西,断言您的代码调用了服务并收到了正确的响应,然后正确地完成了它的工作,或者,如果您确实希望,nock甚至可以允许您的代码执行对web服务的实际调用 否则,如果您只想从测试中调用webservice,您很可能有一个API客户机,您可以自己执行调用
describe('My Test', function (done) {
beforeEach(function () {
var myApiClient = new MyApiClient();
//unless you're using promises
this.response = myApiClient.synchronousGet('http://someURL.com');
});
});
Jasmine本身不负责也不应该负责调用您的web服务,这些服务应该来自您的测试单元。您不应该从测试中发送ajax请求,因为您将依赖于服务来运行测试。。。Web服务的错误响应并不一定意味着代码运行不正确 一个很好的方法是模拟ajax请求(正如limelights所说),但是Jasmine有一个ajax模块可以帮助您实现这一点。看 这个Jasmine插件将允许您捕获对服务的调用,并将其替换为始终相同的新配置响应(因为您应该知道正确测试服务的确切响应) 无论如何,如果你真的想调用你的服务,我认为你必须在测试中用JS编写它(不建议在测试中编写这样的代码。更好的编写将被测试的函数)。正如我所知,Jasmine没有为你提供这种帮助,它只是为了测试目的