小编Ily*_*tel的帖子

多语言REST资源 - URL命名建议

是否有REST最佳实践来获取不同语言的资源.目前,我们有

www.mysite.com/books?locale=en
Run Code Online (Sandbox Code Playgroud)

我知道我们可以使用accept-language标题,但对我们来说更好

www.mysite.com/books/en or www.mysite.com/books.en
Run Code Online (Sandbox Code Playgroud)

或者没关系?

rest restful-url

7
推荐指数
2
解决办法
5164
查看次数

如何对扩展/继承第 3 方类的类进行单元测试

我创建了一个扩展第 3 方抽象类的新类。新类调用抽象类中的方法。我遇到的问题是在尝试编写单元测试时,我不确定如何编写测试,因为我不知道 3rd 方课程所需的确切细节。

下面的 AbstractDecoratorMapper 是一个 SiteMesh 特定的类,我必须扩展它才能使 SiteMesh 正常工作。据我从文档中可以看出,我不能使用组合。

public final class PartnerDecoratorMapper extends AbstractDecoratorMapper {

    @Override
    public void init(Config config, Properties properties, DecoratorMapper parent) throws InstantiationException {
        super.init(config, properties, parent);
    }

    @Override
    public Decorator getDecorator(HttpServletRequest request, Page page) {
        if (super.getDecorator(request, page).getName().equalsIgnoreCase("default")) {
            return getNamedDecorator(request, "externalPartnerDefault");
        }
        return super.getDecorator(request, page);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果此工具可以提供任何帮助,我会使用 JMock。

java unit-testing sitemesh jmock

5
推荐指数
1
解决办法
2449
查看次数

Webdriver FluentWait不会忽略异常

我通过此页面http://www.efinancialcareers.co.uk/search自动化了一些用户流程.当我使用左侧精炼轨道缩小搜索范围时,会出现一个覆盖图,用户必须等到返回搜索结果.该方法等待叠加层出现,然后等待它消失.

public void waitForSRPOverlayToComplete() {

    Wait<WebDriver> wait = new FluentWait<WebDriver>(getDriver())
            .withTimeout(5, TimeUnit.SECONDS)
            .pollingEvery(1, TimeUnit.NANOSECONDS)
            .ignoring(NoSuchElementException.class)
            .ignoring(TimeoutException.class);

    **// Error occurs here**
    WebElement blockedOverlay = wait.until(new Function<WebDriver, WebElement>() {
        public WebElement apply(WebDriver driver) {
            return driver.findElement(By.className("blockOverlay"));
        }
    });

    Wait<WebDriver> wait2 = new FluentWait<WebDriver>(getDriver())
            .withTimeout(5, TimeUnit.SECONDS)
            .pollingEvery(1, TimeUnit.NANOSECONDS)
            .ignoring(NoSuchElementException.class)
            .ignoring(TimeoutException.class);

    wait2.until(ExpectedConditions.stalenessOf(blockedOverlay));
}
Run Code Online (Sandbox Code Playgroud)

有时我得到一个Timeout异常,因为找不到元素(blockOverlay).当发生这种情况并且叠加确实出现时我观察了页面,但我认为有时当搜索速度非常快时,上面的方法会错过它.我不明白为什么我得到技术错误,因为我告诉流利的等待忽略它们.

这是使叠加显示的代码:

$('body').block({
            message: $('#loaderEl'),
            css: {
                backgroundColor: 'transparent',
                border: "none",
                color: '#333333',
                fontWeight: 'bolder',
                top: ($(window).height() - $('#loaderEl').height()) / 2 + $(window).scrollTop() + "px"
            },
            overlayCSS: { …
Run Code Online (Sandbox Code Playgroud)

java selenium-webdriver

5
推荐指数
1
解决办法
8601
查看次数

使用Java过滤器更改区域设置不起作用

我正在尝试使用Java Filter更改Locale,但以下代码不起作用,因为JSP页面仍以英语呈现:

public class PreferenceFilter implements Filter {

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;

        Locale locale = StringUtils.parseLocaleString("fr"); 

        res.setLocale(locale);
        chain.doFilter(req, res);
    }
}
Run Code Online (Sandbox Code Playgroud)

我也在使用Spring MVC,我们正在使用自己的翻译系统来获取不同语言环境的翻译:

<bean id="messageSource"
    class="com.mycompany.web.translations.DatabaseDrivenMessageSourceImpl" scope="singleton">
    <property name="cacheSeconds" value="3"/>
    <property name="defaultEncoding" value="UTF-8"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

java servlet-filters

0
推荐指数
1
解决办法
2270
查看次数