我最近更新了静态文本中的页面标题,以便从我的应用页面呈现动态变量。例如:
静态:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_count_down);
// if (savedInstanceState != null){
//
// }
titleTextView = (TextView)findViewById(R.id.titleTextView);
timeTextView = (TextView)findViewById(R.id.timeTextView);
Bundle getAlarmInfo = getIntent().getExtras();
titleOfAlarm = getAlarmInfo.getString("Title");
totalTime = getAlarmInfo.getString("totalTime");
number = new BigDecimal(totalTime).toBigInteger();
actualTimeFiniliazedInMilliSeconds = number.intValue();
titleTextView.setText(titleOfAlarm);
// countDown = new CountDownTimer(actualTimeFiniliazedInMilliSeconds, timeInterval);
// new UpdateCountDownTime().execute();
countDown = new CountDownTime(actualTimeFiniliazedInMilliSeconds, timeInterval);
countDown.start();
// startService(new Intent(getApplicationContext(), CountDown.class));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_count_down, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public class CountDownTime extends CountDownTimer {
/**
* @param millisInFuture The number of millis in the future from the call
* to {@link #start()} until the countdown is done and {@link #onFinish()}
* is called.
* @param countDownInterval The interval along the way to receive
* {@link #onTick(long)} callbacks.
*/
public CountDownTime(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished;
hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
timeTextView.setText(hms);
}
@Override
public void onFinish() {
Intent goBack = new Intent(CountDownAct.this, ListOfAlarms.class);
startActivity(goBack);
finish();
}
}
@Override
protected void onPause() {
super.onPause();
timeTextView.setText(hms);
}
// public class CountDown extends Service{
//
// public CountDown () {
//
// }
//
// @Override
// public IBinder onBind(Intent intent) {
// return null;
// }
//
// @Override
// public void onCreate() {
// super.onCreate();
//
// countDown = new CountDownTime(actualTimeFiniliazedInMilliSeconds, timeInterval);
// countDown.start();
// }
// }
动态:
<% title "Job" %>
我的旧RSpec测试非常简单:
<% title "Job in #{@job.address.state}" %>
我的页面标题帮助器如下所示:
it 'can see jobs page' do
expect(page).to have_title('Job')
end
使用RSpec测试动态页面标题的最佳方法是什么?我试图使用包含的匹配器来测试页面标题字符串是否包含# Page title helper
def title(page_title)
content_for (:title) { page_title }
end
def yield_or_default(section, default = "")
content_for?(section) ? content_for(section) : default
end
但是无法使其工作。
答案 0 :(得分:0)
我会很难编码你的期望。这样,您就不会测试两次以相同的方式编写相同方法链的能力,而是测试用户将看到的页面上实际打印的内容。
it 'can see jobs page' do
expect(page).to have_title('Job in Alaska')
end
如果由于某种原因你没有正确调用这些方法,那么这个测试就会中断,你就会确切地知道要修复什么。如果这似乎很难做到,请记住您可以使用工厂或将测试中的地址状态设置为您需要的地址。