小编Bre*_*anM的帖子

$ rootScope.digest没有在Jasmine中完成一个承诺

我们目前正在尝试测试我们的角度服务,这些服务使用promises将值返回给控制器.问题是我们附加到.then的函数不会在Jasmine中被调用.

我们发现在返回promise之后向函数添加$ rootScope.digest()允许调用同步promises但是它仍然不适用于异步promise.

到目前为止的代码是

    beforeEach(inject(function (Service, $rootScope)
    {
        service = Service;
        root = $rootScope;
    }));

    it('gets all the available products', function (done)
    {
        service.getData().then(function (data)
        {
            expect(data).not.toBeNull();
            expect(data.length).toBeGreaterThan(0);
            done();
        });
        root.$digest();
    });
Run Code Online (Sandbox Code Playgroud)

在这种情况下,promise被称为罚款,但是如果它是异步的,则不会被调用,因为在根目录下,$ digest()被称为"消化".

是否有一些方法可以告诉我什么时候得到解决,以便我可以调用摘要?或者也许会自动做到这一点?谢谢 ;)

我们必须测试部分服务(删除错误处理):

var app = angular.module('service', []);

/**
 * Service for accessing data relating to the updates/downloads
 * */
app.factory('Service', function ($q)
{
     ... init

    function getData()
    {
        var deffered = $q.defer();

        var processors = [displayNameProc];

        downloads.getData(function (err, data)
        {
            chain.process(processors, data, function (err, processedData) …
Run Code Online (Sandbox Code Playgroud)

javascript jasmine angularjs angular-promise

9
推荐指数
1
解决办法
2094
查看次数

RCPTT从脚本运行Java代码

我正在寻找一些方法直接从我为RCP应用程序编写的测试脚本中运行一些Java代码.

在单击应用程序中的特定按钮之前,我需要在测试中设置多播套接字.像这样的东西:

MulticastSocket socket = new MulticastSocket();
socket.setNetworkInterface(interfaceTarget);

InetAddress group = InetAddress.getByName("220.2.2.2");
socket.joinGroup(group);
Run Code Online (Sandbox Code Playgroud)

我无法找到任何方法来做这个只是想知道这是否可能?

java rcp eclipse-rcp eclipse-rcptt

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