我正在为返回<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:component-scan base-package="kr.ac.jbnu.sql.soremore" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="contentType" value="text/html; charset=UTF-8" />
</bean>
<!-- for file upload -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- setting maximum upload size -->
<property name="maxUploadSize" value="20000000" />
</bean>
</beans>
承诺的代码编写一些Jasmine单元测试。我一直在发现自己编写这样的代码:
when.js
捕获异常的唯一方法是使用doMyThing().then(function(x) {
expect(x).toEqual(42);
done();
}).otherwise(function() {
expect(true).toBe(false);
done();
});
函数(它是{{3}}的旧版本),然后似乎没有Jasmine(2.0)函数说“检测到失败“ - 因此kludgy”otherwise()
“。
有没有更惯用的方法呢?
答案 0 :(得分:2)
您应该考虑使用像Mocha这样的promises支持的测试库,或者使用像jasmine-as-promised这样的帮助器来为您提供这种语法。这可以让你做一些事情:
// notice the return, and _not_ passing `done` as an argument to `it`:
return doMyThing().then(function(x) {
expect(x).toEqual(42);
});
基本上,返回值被检查为一个承诺,如果它是测试框架,则检查承诺是否被拒绝并将其视为失败。
答案 1 :(得分:0)
在仔细查看文档并意识到我们正在使用Jasmine 2.3之后,我发现我们可以使用fail()
函数来大大简化事情。问题中的例子变为:
doMyThing().then(function(x) {
expect(x).toEqual(42);
}).otherwise(fail).then(done);
如果doMyThing()
抛出异常,则该错误将传递给fail()
,后者会打印堆栈跟踪。
这.otherwise(fail).then(done);
原来是一个非常方便的习语。