方法find_something可能会返回nil.在以下代码中,
something = find_something(id) ? find_something(id) : create_something(foo)
Run Code Online (Sandbox Code Playgroud)
find_something(id)被叫两次.这是我想要避免的气味.有没有办法避免这个表达式的冗余?
我正在尝试在Android上使用Mockito。我想将其与一些回调一起使用。这是我的测试:
public class LoginPresenterTest {
private User mUser = new User();
@Mock
private UsersRepository mUsersRepository;
@Mock
private LoginContract.View mLoginView;
/**
* {@link ArgumentCaptor} is a powerful Mockito API to capture argument values and use them to
* perform further actions or assertions on them.
*/
@Captor
private ArgumentCaptor<LoginUserCallback> mLoadLoginUserCallbackCaptor;
private LoginPresenter mLoginPresenter;
@Before
public void setupNotesPresenter() {
// Mockito has a very convenient way to inject mocks by using the @Mock annotation. To
// inject the mocks in the test …Run Code Online (Sandbox Code Playgroud) 我正在尝试对我的服务进行单元测试,其中包含 symfony2 的依赖 Finder 组件(http://symfony.com/doc/current/components/finder.html)。
我越来越 :
[异常] Mock_Finder_91776c5c::getIterator() 返回的对象必须是可遍历的或实现接口 Iterator
服务 :
public function getFile($fileName, $path = '/')
{
if($this->wrapper == null || $this->connection == null)
throw new LogicException("call method setFTP first");
// get file on ftp server
$this->connection->open();
$downloadComplete = $this->wrapper->get($this->tmpDir . $fileName, $path . $fileName);
$this->connection->close();
if($downloadComplete == false)
return false; // TODO exception ?
// return file downloaded
$this->finder->files()->in(__DIR__);
foreach ($this->finder as $file) {
return $file;
}
return false; // TODO exception ?
} …Run Code Online (Sandbox Code Playgroud) 鉴于在Rails上命名对象的约定是这样的:
/app/models/foo/bar.rb => class Foo::Bar
Run Code Online (Sandbox Code Playgroud)
如果我有一个文件夹结构:
/app/models/foo/bar/object1.rb
/app/models/foo/bar/object2.rb
/app/models/foo/main.rb
Run Code Online (Sandbox Code Playgroud)
要从我的主要调用此对象,我必须这样做:
class Foo::Main
def some_method
Foo::Bar::Object1.new
Foo::Bar::Object2.new
end
end
Run Code Online (Sandbox Code Playgroud)
这工作很好.但在这里我的问题:
有没有办法提高对象名称的可读性?
鉴于我Foo::Main在同一名称空间中Foo; 有没有办法用更短的名字来称呼他们(Foo::Bar::Object1.new和Foo::Bar::Object2.new)?
我想他们的名字Bar::Object1.new,并Bar::Object2.new在这方面(或Object1.new和Object2.new)
class Foo::Main
def some_method
Bar::Object1.new
Bar::Object2.new
end
end
Run Code Online (Sandbox Code Playgroud)
这段代码是我所期望的例子,但它不起作用.
我无法在日期字段(时间戳)上使用 orderByChild 订购结果
这里的数据结构:
和代码:
DatabaseReference mMessagesRef = FirebaseDatabase.getInstance().getReference().child("messages")
.child(mConversationId).getRef()
.orderByChild("date").getRef();
mMessagesRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
Run Code Online (Sandbox Code Playgroud)
查询返回了值,但不是按日期排序,而是按键返回。
我试图与FactoryGirl实例化多个对象(具有唯一电子邮件的来宾)
guests = create_list(:guest, 3)
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误:
Failure/Error: guests = create_list(:guest, 3)
ActiveRecord::RecordInvalid:
Validation failed: Email has already been taken
Run Code Online (Sandbox Code Playgroud)
这是我的工厂:
FactoryGirl.define do
factory :guest do
email Faker::Internet.unique.email
firstname 'John'
lastname 'Doe'
password 'test'
password_confirmation 'test'
factory :guest_with_bookings do
email "#{SecureRandom.hex}@test.com"
transient do
bookings_count 2
end
after(:create) do |guest, evaluator|
create_list(:booking, evaluator.bookings_count, guests: [guest])
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
即使使用Faker :: Internet.unique.email,当我尝试创建1位以上的访客时,它也不起作用
我正在使用Google Cloud(GKE),我想将他们的系统用于日志和监视器(Stackdriver).我的项目是在php Symfony3下.我正在搜索如何登录到我的symfony项目的一些日志.
我看到有一个官方的lib:
https://github.com/GoogleCloudPlatform/google-cloud-php
还有一个PSR-3级:
http://googlecloudplatform.github.io/google-cloud-php/#/docs/v0.20.1/logging/psrlogger
我的问题是,如何将我的config.yml与monolog集成?
php symfony monolog google-cloud-platform google-cloud-logging
我有一个简单的课程(没有 Rails)
class Tax
attr_reader :guest_age
def initialize(guest_age)
@guest_age = guest_age
end
def amount
0
end
end
Run Code Online (Sandbox Code Playgroud)
该对象有一个“金额”自定义方法,我希望在执行此操作时将金额结果包含在 json 中:tax.as_json(methods: :amount)
但这不起作用,这仅返回带有变量的对象。
我现在得到的:
{“guest_age”:18}
我期待的是:
{ “guest_age”:18,“金额”:0 }
请参阅https://apidock.com/rails/ActiveModel/Serializers/JSON/as_json
笔记 :
我想保留这个对象而不依赖于活动记录库。