akn*_*ds1 12 javascript testing rest angularjs protractor
我想在运行Protractor测试之前向数据库服务器发出POST请求(使用JSON有效负载),以便注入测试数据.如果可能的话,我怎么能这样做呢?
如果您只想填充数据库,则可以使用另一个库来运行POST请求.
例如,你可以在你的喜欢中使用superagentbeforeEach
:
var request = require( "superagent" );
describe( "Something", function() {
beforeEach( function( done ) {
request
.post( "http://localhost/api/foo" )
.send( {data : "something"} )
.end( done );
} );
} );
Run Code Online (Sandbox Code Playgroud)
在Andres D的帮助下,我找到了一种方法.它的要点是在浏览器中运行脚本browser.executeAsyncScript
并在那里注入$ http服务.然后告知$ http服务发出POST请求.以下是CoffeeScript如何完成的示例:
browser.get('http://your-angular-app.com')
browser.executeAsyncScript((callback) ->
$http = angular.injector(["ng"]).get("$http")
$http(
url: "http://yourservice.com"
method: "post"
data: yourData
dataType: "json"
)
.success(->
callback([true])
).error((data, status) ->
callback([false, data, status])
)
)
.then((data) ->
[success, response] = data
if success
console.log("Browser async finished without errors")
else
console.log("Browser async finished with errors", response)
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15139 次 |
最近记录: |