Это не проблема, я просто хотел убедиться, что этот код имеет эффект для тестирования, который, как я думаю, имеет. Я хочу иметь тест, который строит/создает структуру через фабрику и проверяет, действительно ли набор изменений действителен, так же как и сгенерированный по умолчанию тест. Таким образом, мои заводы также проверяются на получение достоверных данных.Тестирование/проверка заводских изменений и повторное тестирование схемы в ExMachina
Например, тест этого значения по умолчанию, который использует карту атрибутов для создания структуры и ревизии проверки данных:
@valid_attrs %{
email: "[email protected]",
first_name: "some content",
last_name: "some content",
password: "some content",
password_hash: "some content",
username: "some content",
mobile: "1112223333"}
@invalid_attrs %{}
test "changeset with valid attributes" do
changeset = User.changeset(%User{}, @valid_attrs)
assert changeset.valid?
end
Может быть переписан с заводом, как это?
test "changeset with ExMachina Factory attributes" do
user = build(:user)
changeset = User.changeset(user,%{})
assert changeset.valid?
end
Как я учусь эликсир, иногда семантика запутанные, и я надеялся получить некоторые разъяснения, что это правильное направление, чтобы взять. Пропускает пустую карту атрибутов, потому что они уже определены в user
фабрикой build(:user)
правильно ли проверяет набор изменений?
Следующим шагом было бы сделать что-то вроде того, что я сделал в Rails/Rspec/FactoryGirl, где у меня есть FactorySpec, который строит каждую из моделей и проверяет правильность построения модели. В этом примере заводская спецификация строит каждую модель и проверяет их.
#spec/models/factory.rb
FactoryGirl.factories.map(&:name).each do |factory_name|
describe "The #{factory_name} factory" do
it 'is valid' do
build(factory_name).should be_valid
end
end
end
#spec/models/post_spec.rb
require 'rails_helper'
RSpec.describe Post, type: :model do
end
#spec/models/user_spec.rb
require 'rails_helper'
RSpec.describe User, type: :model do
end
Наконец, Есть ли какие-либо предложения о том, как создать спецификацию/тест в ExUnit, что повторяемые тесты все с использованием их Структура соответствующих заводов, чтобы проверить их build/create
поколения?
У меня есть issue (198), открытый в ExMachina репо, а также для перекрестных ссылок.
Эти два теста не равны. Если я правильно помню, ExMachina не использует ревизии для построения структур, поэтому эти тесты не работают одинаково. –