我在django应用程序中使用django-ajax,并希望对使用它的视图进行更彻底的单元测试。
我的特定视图模板包含以下内容:
{% block head_js %}
<script type="text/javascript">
$(function() {
$('#progressbar').progressbar({
value: false
});
var checkStatus = function() {
$.ajax({
type: "POST",
url: '/ajax/MyApp/check_provisioning.json',
dataType: 'json',
success: function(data) {
if (data.data.complete != true) {
setTimeout(checkStatus, 3000);
} else {
// We've finished provisioning, time to move along.
window.location.replace('/MyApp/next');
}
}
});
};
checkStatus();
});
</script>
{% endblock %}
在MyApp / endpoints.py中我有函数(简化):
def check_provisioning(request):
# Do some stuff
return {'complete': some_boolean}
现在......据我所知,视图在实际使用中运行得很好。 但是在进行单元测试时,django的测试客户端会检索渲染的响应,但不会运行嵌入其中的任何内容。
有没有人知道我可以单元测试视图和/或端点功能实际上正在做他们应该做的事情的方式?我宁愿不再使用django测试框架来为这个使用django-ajax的整个项目中的一个视图设置selenium测试。
答案 0 :(得分:1)
你可以使用类似django-casper的东西:
https://github.com/dobarkod/django-casper
我没有使用它,但它似乎是一个特定于django的python库,它与CasperJS和PhantomJS接口。
PhantomJS是一款基于网络工具包的无头浏览器,通过selenium为浏览器自动化提供了更轻量级的替代方案。