小编Gal*_*aim的帖子

rails控制器,用于混合嵌套和非嵌套资源

我正在开发类似应用程序的博客,我的用户模块has_many帖子和posts模块belongs_to用户

我想访问两个用户/:id/posts和posts /

routes.rb是这样的:

resources :users do
  resources :posts
end

resources:posts
Run Code Online (Sandbox Code Playgroud)

如果直接访问(/ posts)或通过嵌套路由(/ users /:id/posts),我怎么能在帖子控制器中知道?

例如,应该是posts控制器的索引方法,用于为/ users /:id/posts和/ posts执行正确的INDEX操作

有没有更好的方法来做到这一点?

ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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

如何JUnit测试ContentResolver.notifyChange

我正在为a编写测试ContentProvider,insert我正在通知更改getContext().getContentResolver().notifyChange(mUri, null);

我的测试类扩展ProviderTestCase2.我创建了以下模拟ContentObserver类:

private class ContentObserverMock extends ContentObserver {
    public boolean changed = false;

    public ContentObserverMock(Handler handler) {
        super(handler);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onChange(boolean selfChange) {
        changed = true;
    }

    @Override
    public boolean deliverSelfNotifications() {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是测试用例:

public void testInsertNotifyContentChanges() {
    ContentResolver resolver = mContext.getContentResolver();
    ContentObserverMock co = new ContentObserverMock(null);

    resolver.registerContentObserver(CONTENT_URI, true, co);

    ContentValues values = new ContentValues();
    values.put(COLUMN_TAG_ID, 1);
    values.put(COLUMN_TAG_CONTENT, "TEST");

    resolver.insert(CONTENT_URI, values);
    assertTrue(co.changed); …
Run Code Online (Sandbox Code Playgroud)

android android-contentresolver android-testing

8
推荐指数
1
解决办法
2174
查看次数

Android:将数据添加到ArrayAdapter时,可见的ListView图像闪烁

我有一个扩展ArrayAdapter的自定义适配器,它实现了视图持有者模式,以显示来自Web服务的数据(文本+图像).

对于延迟加载图像我使用Android开发者网站中高级培训的异步任务模式,

我还使用disk + ram位图缓存.

当有其他数据需要检索时,我添加了一个页脚视图,点击它可以从Web服务中检索其他数据并将其添加到适配器.

问题是,当添加这些新数据时,一些可见图像正在改变并立即改回,这导致奇怪的闪烁.

除此之外一切正常,滚动顺畅.

据我所知,当添加新数据时刷新可见视图时会发生这些图像更改.

有没有办法绕过这种不受欢迎的行为?

这是执行下载和管理异步任务的类

public class ImageDownloader {
private ImageCache mCache;
private int reqWidth;
private int reqHeight;

public void download(String url, ImageView imageView, ImageCache imageCache, int reqHeight, int reqWidth) {
    mCache = imageCache;
    this.reqHeight = reqHeight;
    this.reqWidth = reqWidth;

    if (cancelPotentialDownload(url, imageView)) {
        BitmapDownloaderTask task = new BitmapDownloaderTask(imageView);

        DownloadedDrawable downloadedDrawable = new DownloadedDrawable(task);
        imageView.setImageDrawable(downloadedDrawable);
        task.execute(url);
    }
}

private class BitmapDownloaderTask extends AsyncTask<String, Void, Bitmap> {
    private String url;
    private WeakReference<ImageView> imageViewReference;

    public BitmapDownloaderTask(ImageView …
Run Code Online (Sandbox Code Playgroud)

android android-listview android-adapter android-asynctask cwac-endless

8
推荐指数
1
解决办法
6705
查看次数

如何JUnit测试IntentService

我是Android测试的新手,我想测试一个IntentService,我现在正在扩展ServiceTestCase.

我正在尝试使用a ResultReceiver但问题是OnReceiveResult在测试用例中从未调用过.(我也尝试创建ResultReceiverwith new Handler()作为参数insetad null但具有相同的结果.

我究竟做错了什么?什么是测试的正确方法IntentService

这是服务:

public class MyService extends IntentService {

public MyService() {
    super("MyService");
}

public MyService(String name) {
    super(name);
}

@Override
protected void onHandleIntent(Intent intent) {
    final int action = intent.getIntExtra("action", 0);
    final int request = intent.getIntExtra("request", 0);
    final ResultReceiver receiver = (ResultReceiver) intent.getExtras().get("receiver");

    if (receiver == null) {
        return;
    }

    if (action == 0 || request == 0) {
        receiver.send(0, null);

        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

} …

java junit android android-testing

6
推荐指数
1
解决办法
3610
查看次数

Robolectric:如何测试SherlockActivity

我正在尝试在一个扩展SherlockActivity的Activity上运行测试.我阅读了有关使用ActionBarSherlock测试活动的解决方案的所有内容,并尝试了以下https://github.com/passy/absshadow-sample

这就是我目前正在做的事情:

定制测试运行器:

public class CustomTestRunner extends RobolectricTestRunner {
    private static final int SDK_INT = Build.VERSION.SDK_INT;

    public CustomTestRunner(Class<?> testClass) throws InitializationError {
        super(testClass);
        addClassOrPackageToInstrument("com.actionbarsherlock.app.SherlockActivity");
    }

    @Override
    protected void bindShadowClasses() {
        super.bindShadowClasses();
        Robolectric.bindShadowClass(ShadowSherlockActivity.class);
    }

    @Override
    public void beforeTest(final Method method) {
        final int targetSdkVersion = robolectricConfig.getSdkVersion();
        setStaticValue(Build.VERSION.class, "SDK_INT", targetSdkVersion);
    }

    @Override
    public void afterTest(final Method method) {
        resetStaticState();
    }

    @Override
    public void resetStaticState() {
        setStaticValue(Build.VERSION.class, "SDK_INT", SDK_INT);
    }
}
Run Code Online (Sandbox Code Playgroud)

影子SherlockActivity:

@Implements(SherlockActivity.class)
public class ShadowSherlockActivity extends ShadowActivity {

    @Implementation
    public void …
Run Code Online (Sandbox Code Playgroud)

android robolectric actionbarsherlock android-testing

6
推荐指数
1
解决办法
1042
查看次数

Go:如何将struct转换为[] byte?

我正在尝试使用"appengine/memcache"将数据存储在缓存中,memcache.Item的Value字段是[] byte

如何将结构转换为[]字节进行存储?

例如:

type Link struct {
    Files []string
}
Run Code Online (Sandbox Code Playgroud)

google-app-engine go

6
推荐指数
1
解决办法
1375
查看次数

如何使用mocha测试node.js http客户端?

我有一个node.js模块,HTTP POST一个JSON请求,

我想测试正确的url,标头,请求正文以及请求是否实际执行.

我正在使用Mocha作为测试框架.我该如何测试呢?

mocha.js node.js

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

如何为移动和AJAX调用保护JSON RESTful API?

我正在构建一个使用node.js和express.js构建的JSON RESTful API,

API将由客户端AJAX调用(来自Ember.js)和本机Android移动应用程序(标准HTTP请求)访问.

我正在研究两件事:

1)身份验证 - 如何知道哪个用户正在访问API,在开发中我为每个用户使用了一个API密钥并在请求头中传递了它

2)安全性 - 如何确保只有真正认证的用户才能访问私有数据.

API密钥对于本机移动客户端和AJAX调用都是一个很好的策略吗?(用户将用户+传递给API并接收API密钥,然后用于创建其他请求)

我应该看看像OAUTH(1或2)这样的东西吗?我目前没有第三方应用程序访问API的计划,因此我不需要授权,但这可能在将来发生变化.

这是否意味着我需要拥有自己的OAUTH提供商服务器?

rest oauth node.js oauth-2.0 express

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

在Docker容器内连接到Node.js上游时,Nginx连接被拒绝

我有以下设置:

Docker容器以supervisord作为入口点,supervisord运行Node.js进程和Nginx代理.Nginx端口暴露在外面.

在主机上,另一个Nginx用于SSL终止和vhost路由/负载平衡,它用作Docker容器的代理.

我遇到了一些奇怪的问题,有时Docker容器内的Nginx服务器报告错误,连接到上游Node.js服务器.似乎HTTP请求是200,所以即使只有一个上游,也许它会自动重试?!

此外,Node.js进程中没有错误或崩溃的迹象stdout/stderr ..

这是我看到的错误:

2014/07/31 12:48:54 [error] 15#0: *10 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.42.1, server: f074d2f4389f, request: "GET /users/me HTTP/1.1", upstream: "http://[::1]:3000/users/me", host: "xxx.xxx.com", referrer: "https://xxx.xxx.com/"
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?

这是supervisord配置文件:

[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log    ; supervisord log file
logfile_maxbytes=50MB                           ; maximum size of logfile before rotation
logfile_backups=10                              ; number of backed up logfiles
loglevel=info                                  ; info, debug, warn, trace
pidfile=/var/run/supervisord.pid                ; pidfile location
childlogdir=/var/log/supervisor/               ; where child log files will live"
Run Code Online (Sandbox Code Playgroud)

这个文件包含在其他文件中:

[include]
files …
Run Code Online (Sandbox Code Playgroud)

nginx node.js supervisord docker

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

supervisord:是否可以将子进程标准输出重定向回 supervisord?

我使用 supervisord 作为 Docker 容器的入口点,如https://docs.docker.com/articles/using_supervisord/ 中所述,我希望所有日志都写入标准输出,以便我可以利用内置工具,如docker logs或 systemd 的日志,尤其是在 CoreOS 上运行容器时。

对于 stderr 有redirect_stderr=true子进程选项,是否可以以某种方式将子进程 stdout 重定向回 supervisord 而不是处理实际的日志文件?

supervisord docker coreos

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