嘿,我有一个看起来像这样的测试
test 'create account' do
if User.create(email: 'me@test.com', password: 'blahblah')
assert true
else
assert User.msg
end
end
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行它时,我收到如下错误消息:
1) Error:
UserTest#test_create_account:
ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_users_on_email"
DETAIL: Key (email)=() already exists.
: INSERT INTO "users" ("created_at", "updated_at", "id") VALUES ('2013-10-16 21:59:54', '2013-10-16 21:59:54', 298486374)
Run Code Online (Sandbox Code Playgroud)
这看起来好像我没有初始化电子邮件,但据我所知,这应该用我上面的创建初始化.我正在使用强大的参数,所以我没有启用任何attr_accessable,我可以通过它.有谁知道是什么原因引起的?如果您想了解更多信息,请通知我.
我有一个安装在我的onCreate里面的android setInexactRepeating,它永远不会触发.我在其中有一个日志,以确保它实际上正在执行,并且似乎没有触发,以及我为它计划的事件.我希望它每隔10秒就会消失一次,但它甚至连第一次都没有消失.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("Restart", "First");
Intent toRun = new Intent(this, AlarmRestart.class);
PendingIntent pendingToRun = PendingIntent.getBroadcast(this, 0, toRun, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.cancel(pendingToRun);
am.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, System.currentTimeMillis(), 10000L, pendingToRun);
Log.d("Restart", "Second");
}
Run Code Online (Sandbox Code Playgroud)
这是在另一个文件中:
public class AlarmRestart extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Log.d("Restart", "Third");
}
}
Run Code Online (Sandbox Code Playgroud)
这就是"adb shell dumpsys alarm"所说的
com.packageName.restart
5715ms running, 64 wakeups
3 alarms: flg=0x14 cmp=com.packageName.restart/.AlarmRestart
61 alarms: flg=0x14 cmp=com.packageName.restart/.reciever.AlarmRestart
Run Code Online (Sandbox Code Playgroud) android repeat alarmmanager android-intent android-pendingintent
我正在寻找一种将像素缓冲区直接渲染到屏幕的方法.我需要一种方法在OSX和Linux上完成它,虽然我知道我可能需要通过不同的方法为每个操作系统做这件事(尽管跨平台库会很好.)你从哪里开始?