我正在开发类似应用程序的博客,我的用户模块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操作
有没有更好的方法来做到这一点?
我正在为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) 我有一个扩展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
我是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)
} …
我正在尝试在一个扩展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) 我正在尝试使用"appengine/memcache"将数据存储在缓存中,memcache.Item的Value字段是[] byte
如何将结构转换为[]字节进行存储?
例如:
type Link struct {
Files []string
}
Run Code Online (Sandbox Code Playgroud) 我有一个node.js模块,HTTP POST一个JSON请求,
我想测试正确的url,标头,请求正文以及请求是否实际执行.
我正在使用Mocha作为测试框架.我该如何测试呢?
我正在构建一个使用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提供商服务器?
我有以下设置:
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) 我使用 supervisord 作为 Docker 容器的入口点,如https://docs.docker.com/articles/using_supervisord/ 中所述,我希望所有日志都写入标准输出,以便我可以利用内置工具,如docker logs或 systemd 的日志,尤其是在 CoreOS 上运行容器时。
对于 stderr 有redirect_stderr=true子进程选项,是否可以以某种方式将子进程 stdout 重定向回 supervisord 而不是处理实际的日志文件?