Python Django在视图中测试ajax端点
我正在django应用程序中使用,希望对使用它的视图进行更彻底的单元测试 特定视图的“我的模板”包含以下内容:Python Django在视图中测试ajax端点,python,ajax,django,unit-testing,django-testing,Python,Ajax,Django,Unit Testing,Django Testing,我正在django应用程序中使用,希望对使用它的视图进行更彻底的单元测试 特定视图的“我的模板”包含以下内容: {% block head_js %} <script type="text/javascript"> $(function() { $('#progressbar').progressbar({ value: false }); var checkStatus = function
{% 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 %}
现在。。。据我所知,在实际使用中,视图功能很好。
但是在进行单元测试时,django的测试客户机检索呈现的响应,但不运行其中嵌入的任何内容
有人知道我可以用什么方法来单元测试视图和/或端点函数是否真的在做它们应该做的事情吗?我不希望使用django测试框架为整个项目中使用django ajax的一个视图设置selenium测试。您可以使用类似django casper的东西: 我没有使用它,但它似乎是一个django特定的python库,它与CasperJS和PhantomJS接口
PhantomJS是一款基于web工具包的无头浏览器,它提供了一种更轻量级的替代方案,以取代使用selenium的浏览器自动化。我可以,是的。但是如果你注意到我问题的最后一段,我正在寻找不用硒的方法。谢谢你,这比设置硒测试有很大的改进。在一个视图模板中测试一个函数仍然感觉有些过分,但这可能是我所能期望的最好的方法,而不是编写一堆自定义的东西。不幸的是,我不认为有任何简单的方法来测试客户端javascript,除非你有某种无头浏览器或自动浏览器设置。
def check_provisioning(request):
# Do some stuff
return {'complete': some_boolean}